{"_id":"frontend-app","_rev":"66-2eac6817eb2d63e577028e022b092fbb","name":"frontend-app","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","dist-tags":{"latest":"2.2.0","beta":"1.2.0-0","next":"2.0.0-beta.3"},"versions":{"0.1.0":{"name":"frontend-app","version":"0.1.0","description":"Start using ES2015 and beyond syntax and features, import & export and livereload.","scripts":{"build":"npm run clean && babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-loader":"^6.2.4","babel-polyfill":"^6.9.1","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","cross-env":"^2.0.0","fs-extra":"^0.30.0","webpack":"^2.1.0-beta.20","webpack-livereload-plugin":"^0.8.1","whatwg-fetch":"^1.0.0","yargs":"^4.8.1"},"devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","rimraf":"^2.5.4"},"gitHead":"e48c7c71d27cf10243b898e29a92ca670fa6416a","_id":"frontend-app@0.1.0","_shasum":"933b39da7a8de036f48ceabd664f0981b98647d9","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"933b39da7a8de036f48ceabd664f0981b98647d9","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.1.0.tgz","integrity":"sha512-NzyPIjoRVjVwB6WL3K/ZJ+bVaoxJXsYGiQWNUEhpkwq9W4VVV//7ctsAMk+2Lsa24AmvjpRszLkUjzlMwjYn0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwMe8vNqb+jh/HhmGf5+uOlCMXdGEDN6HlYeebpHV7KwIhAMiP/9Tg5hYL2gftwGZTJIVYPuCnw3yghKBC0Trw1kNW"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.1.0.tgz_1469803091945_0.5960858259350061"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.1.1":{"name":"frontend-app","version":"0.1.1","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"build":"npm run clean && babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-loader":"^6.2.4","babel-polyfill":"^6.9.1","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","cross-env":"^2.0.0","fs-extra":"^0.30.0","webpack":"^2.1.0-beta.20","webpack-livereload-plugin":"^0.8.1","whatwg-fetch":"^1.0.0","yargs":"^4.8.1"},"devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","rimraf":"^2.5.4"},"gitHead":"89f8d754057c0ac7b2e885630916b365119d9d68","_id":"frontend-app@0.1.1","_shasum":"8330b866fe0f6485117d45f52730c6d391d186c5","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"8330b866fe0f6485117d45f52730c6d391d186c5","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.1.1.tgz","integrity":"sha512-64MzknkHQwh2ldrub1iWq6wR3b0VWMvJP2v1mS0xv+krPoNV0Jr0NGBjAQqmWUZ90i9cur8sQfmUt5eeGGz00w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmBdjFNDpm3DxCp9FX+bm1J1wwWmNwSySO6ZocZdzj5QIhAPC61AWcp3/wI3uYKmZwVSlr0YsKuu5f/hXE/SJk1nce"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.1.1.tgz_1469804005878_0.7291346089914441"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.1.2":{"name":"frontend-app","version":"0.1.2","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"build":"npm run clean && babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-loader":"^6.2.4","babel-polyfill":"^6.9.1","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","cross-env":"^2.0.0","fs-extra":"^0.30.0","handlebars-template-loader":"^0.6.0","webpack":"^2.1.0-beta.20","webpack-livereload-plugin":"^0.8.1","whatwg-fetch":"^1.0.0","yargs":"^4.8.1"},"devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","rimraf":"^2.5.4"},"gitHead":"df86100cf6daf012cafca4d635bb960b418830dc","_id":"frontend-app@0.1.2","_shasum":"4c3fe6347af4f91fd67927947332c15d6e6da8a8","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"4c3fe6347af4f91fd67927947332c15d6e6da8a8","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.1.2.tgz","integrity":"sha512-XQFVmgdvMuIsFQAlCy6UQF7LkS0LoUOT7TKpidb/z+U2OmjJU2WnWFEITIBm2pIVnCyx1bnYDAh1Rw8bjKJ8IA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGzWEvNezQEwv9O/hzYTCNb6u6eC0ZFyS3v7MaU8YpgYAiEAmCNHUo6g1sCG0NMkJ9WrMiuCRURIZ0mmAmDCqckhVAM="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.1.2.tgz_1469808705050_0.979517242172733"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.1.3":{"name":"frontend-app","version":"0.1.3","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"build":"npm run clean && babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-loader":"^6.2.4","babel-plugin-react-require":"^2.1.0","babel-polyfill":"^6.9.1","babel-preset-es2015-webpack":"^6.4.2","babel-preset-es2016":"^6.11.3","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.5.0","cross-env":"^2.0.0","fs-extra":"^0.30.0","handlebars-template-loader":"^0.6.0","webpack":"^2.1.0-beta.20","webpack-livereload-plugin":"^0.8.1","whatwg-fetch":"^1.0.0","yargs":"^4.8.1"},"devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","rimraf":"^2.5.4"},"gitHead":"ffe8f2061653afc5fbfeb6207a362e541b80b1c5","_id":"frontend-app@0.1.3","_shasum":"b9e7ac5095c5e98bda234165423d7b3e2d68045b","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"b9e7ac5095c5e98bda234165423d7b3e2d68045b","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.1.3.tgz","integrity":"sha512-Z7y8FNzQN/Gy4/kE6uKAQiwD9cbclt+wcSftDeAXSziEctciqUa3ybayeuny54tpvbbeqzr4nABDToMTgZxsvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFgRo8+VxGdA9QBCutpcf9CYg0rCs99sTkql413QKwoQIhAP3nuIBD9qwq08v6QSxCfUsPAsFBm8+2VWP6A2OO9JOl"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.1.3.tgz_1470118453848_0.22368191624991596"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.1.4":{"name":"frontend-app","version":"0.1.4","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"build":"npm run clean && babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-loader":"^6.2.4","babel-plugin-react-require":"^2.1.0","babel-polyfill":"^6.9.1","babel-preset-es2015-webpack":"^6.4.2","babel-preset-es2016":"^6.11.3","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.5.0","cross-env":"^2.0.0","fs-extra":"^0.30.0","handlebars-template-loader":"^0.6.0","webpack":"^2.1.0-beta.20","webpack-livereload-plugin":"^0.8.1","webpack-merge":"^0.14.1","whatwg-fetch":"^1.0.0","yargs":"^4.8.1"},"devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","rimraf":"^2.5.4"},"gitHead":"9f0e962680b020bf9d7752f88daf90520b3a1792","_id":"frontend-app@0.1.4","_shasum":"07a837fe626ae1ad3fcd9a471c760cdc8bc185ea","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"07a837fe626ae1ad3fcd9a471c760cdc8bc185ea","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.1.4.tgz","integrity":"sha512-+ArWjUisSd/iwu7kBPA/41PsuHF3hIk7eGQ6pD/fCYYfu3B4umMJNr52Aji99HCSiLg5qWK6pi+uNWKFt5Q1ZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqlp7tPuiAiRLTagI/nn8RH3UP7axbdd7L+My27DYTOgIhANFXCJVgxA+72VJVBqI/3HjgKVetYl6d91yxCaEUqCan"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.1.4.tgz_1470150394353_0.0010380365420132875"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.2.0":{"name":"frontend-app","version":"0.2.0","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"prebuild":"npm run clean","build":"babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"^6.11.4","babel-loader":"^6.2.4","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^2.1.0","babel-plugin-syntax-decorators":"^6.8.0","babel-plugin-transform-class-properties":"^6.11.5","babel-plugin-transform-do-expressions":"^6.8.0","babel-plugin-transform-export-extensions":"^6.8.0","babel-plugin-transform-function-bind":"^6.8.0","babel-polyfill":"^6.9.1","babel-preset-es2015-webpack":"^6.4.2","babel-preset-es2016":"^6.11.3","babel-preset-react":"^6.11.1","babel-preset-stage-2":"^6.11.0","cross-env":"^2.0.0","css-loader":"^0.23.1","extract-text-webpack-plugin":"^2.0.0-beta.3","file-loader":"^0.9.0","fs-extra":"^0.30.0","handlebars-template-loader":"^0.6.0","json-loader":"^0.5.4","ng-annotate-loader":"^0.1.1","node-sass":"^3.8.0","raw-loader":"^0.5.1","rimraf":"^2.5.4","sass-loader":"^4.0.0","style-loader":"^0.13.1","url-loader":"^0.5.7","webpack":"^2.1.0-beta.20","webpack-livereload-plugin":"^0.8.1","webpack-merge":"^0.14.1","whatwg-fetch":"^1.0.0","yargs":"^4.8.1"},"devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.9.0","babel-preset-es2016":"^6.11.3","babel-preset-stage-0":"^6.5.0","rimraf":"^2.5.4"},"gitHead":"a02cfd2d303f05225cd82acf9a518b74ba79f78b","_id":"frontend-app@0.2.0","_shasum":"31d13babee0b7d166ed60ba66235f76d689ec82d","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"31d13babee0b7d166ed60ba66235f76d689ec82d","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.2.0.tgz","integrity":"sha512-eYB7y5fR7vxWNxd8iuW8rImqM9zZJgO/4r0nFJE+AKRpWowV97UyhQU7wnkH00ryREX2OGQSi4GQ8A73sSOkXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZe6iWeNiXcCCXxquByuMlHFi0FG3AipxgPCtKI+ccuAiEA2OTXuU2tf3RobRNcE9TJ4dLn5VWFnrOl6Apsmk53LCg="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.2.0.tgz_1470327881887_0.19231574493460357"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.2.1":{"name":"frontend-app","version":"0.2.1","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"prebuild":"npm run clean","build":"babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"^6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015-webpack":"6.4.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","ng-annotate-loader":"0.1.1","node-sass":"3.8.0","raw-loader":"0.5.1","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"devDependencies":{"babel-cli":"6.11.4","babel-preset-es2015":"6.13.1","babel-preset-es2016":"6.11.3","babel-preset-stage-0":"6.5.0","rimraf":"2.5.4"},"gitHead":"6c7e86bd97e2196106759ac02aa394783b454f81","_id":"frontend-app@0.2.1","_shasum":"420b5eb35eea7424a19fb75f78207d61d14cb84a","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"420b5eb35eea7424a19fb75f78207d61d14cb84a","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.2.1.tgz","integrity":"sha512-rSH346KGaFtjgy+SF6WLoQLKWpwGudNlncGnKcu0zdZ5lHdt6R+XVbnrpMkjMZXcesjAZyLJwnBxmuD5R3dBXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcLrnzXwn7iiUTUagVrGaXGg+lfgN0Jmr9xiSMnKvnZwIhAJlimk6y/6bIbgRPI553wnnxIGdkZGCgjwcJFcVYACn/"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.2.1.tgz_1470395473095_0.9243628378026187"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.2.2":{"name":"frontend-app","version":"0.2.2","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"prebuild":"npm run clean","build":"babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015-webpack":"6.4.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","ng-annotate-loader":"0.1.1","node-sass":"3.8.0","raw-loader":"0.5.1","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"devDependencies":{"babel-cli":"6.11.4","babel-preset-es2015":"6.13.1","babel-preset-es2016":"6.11.3","babel-preset-stage-0":"6.5.0","rimraf":"2.5.4"},"gitHead":"f932315ed62d492c9ef2b76b3e5f7f6629f3f8d0","_id":"frontend-app@0.2.2","_shasum":"416e53f84f277313ee42c800570dfb95e1960486","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"416e53f84f277313ee42c800570dfb95e1960486","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.2.2.tgz","integrity":"sha512-0AgCLBL4LswAuE+yTjvd85qc7gFyVtI5h+S/z7GkyHj8InAB0WYHWHzV3/92pg3mlBS/AhTI3uHMOS2SIIFFmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFreq/XkRuXwCtCgwGY2XOEZNxdLoaysXxjzcFR1UjIAiA/FEm9kC8QWStLbXnqlkfw+KOXJYRGtyshLIPuRnK8og=="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.2.2.tgz_1470658769817_0.7491243006661534"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.2.4":{"name":"frontend-app","version":"0.2.4","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"prebuild":"npm run clean","build":"babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015-webpack":"6.4.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","ng-annotate-loader":"0.1.1","node-sass":"3.8.0","raw-loader":"0.5.1","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"devDependencies":{"babel-cli":"6.11.4","babel-preset-es2015":"6.13.1","babel-preset-es2016":"6.11.3","babel-preset-stage-0":"6.5.0","rimraf":"2.5.4"},"gitHead":"1f07f5b69d65e6ff58d562298f37787889f5d4f7","_id":"frontend-app@0.2.4","_shasum":"952608d765ce36a669cfc6dc2e1f617262d63e77","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"952608d765ce36a669cfc6dc2e1f617262d63e77","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.2.4.tgz","integrity":"sha512-a075usI6C4f3Wn0eM60YUOLHmFExScE+oocRI2o36nqeL0s1qGIxZtTtR7jLDI5vUVwTvxrU02s82SbOdM2/ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFEL2j9C2ziZukCy1zJ2gy28xMqgvOsO1QNUYXEHZmwWAiEA2g9vtw7XDu/K5xqW2yeExBngwpN6CiemhhC2TWxi+4c="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.2.4.tgz_1470666207246_0.895509010180831"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.2.5":{"name":"frontend-app","version":"0.2.5","description":"Start using ES2015 and beyond syntax and features, import, export, etc. and livereload.","scripts":{"prebuild":"npm run clean","build":"babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015-webpack":"6.4.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","node-sass":"3.8.0","raw-loader":"0.5.1","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"devDependencies":{"babel-cli":"6.11.4","babel-preset-es2015":"6.13.1","babel-preset-es2016":"6.11.3","babel-preset-stage-0":"6.5.0","rimraf":"2.5.4"},"gitHead":"62f26001a6780782b4d5edbcea44c0e1ed57c882","_id":"frontend-app@0.2.5","_shasum":"9442b9b4a95abe0c3913b47979d89f49cc465cd5","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"9442b9b4a95abe0c3913b47979d89f49cc465cd5","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.2.5.tgz","integrity":"sha512-f841tzUMld1HKk3hw1FiUCwGfluvTHZtDJfQL65qWgrkqNZ3m1mNHgtdpAzHPjzevahQG2HODkKVYl8RRoydrg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvHy1peP5w/BMoqWe5uISYtlXfzIUs56pGfMkb19WeFAiAjDNT9do+BiT0aDva7q+ip8dm0zXZ59Wh2CttAe+m1Wg=="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.2.5.tgz_1470827360742_0.5375151403713971"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.2.6":{"name":"frontend-app","version":"0.2.6","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and livereload.","scripts":{"prebuild":"npm run clean","build":"babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015-webpack":"6.4.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","node-sass":"3.8.0","raw-loader":"0.5.1","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"devDependencies":{"babel-cli":"6.11.4","babel-preset-es2015":"6.13.1","babel-preset-es2016":"6.11.3","babel-preset-stage-0":"6.5.0","rimraf":"2.5.4"},"gitHead":"c002340bc7c717d9aadaa9f682dbc0a158043b6e","_id":"frontend-app@0.2.6","_shasum":"c296d6acf0740a7a433a8761fa07fd18bc715ced","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"c296d6acf0740a7a433a8761fa07fd18bc715ced","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.2.6.tgz","integrity":"sha512-R+eGVGqQd1ODYELsTOlieRya1qP5ooNzH8NVetHiHwCeCX6nZBzIxCc/Ej9DXe4eyWddWVisn/w9lS3FxlXAMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA6NWSrYbM/psBUyQLMbuiYkij1WbrYSAWDKmdWLYUQDAiEA9LScCxpdmVS+7rKGSsTVXFqDXvqkRrpbc0Xod+kXCSI="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.2.6.tgz_1470990838239_0.6254673874936998"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.2.7":{"name":"frontend-app","version":"0.2.7","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and livereload.","scripts":{"prebuild":"npm run clean","build":"babel src --out-dir lib","clean":"rimraf lib","postinstall":"node lib/postinstall","prepublish":"npm run build"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015-webpack":"6.4.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","node-sass":"3.8.0","raw-loader":"0.5.1","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"devDependencies":{"babel-cli":"6.11.4","babel-preset-es2015":"6.13.1","babel-preset-es2016":"6.11.3","babel-preset-stage-0":"6.5.0","rimraf":"2.5.4"},"gitHead":"6f959c175bb2df4c545a182d04efb7840067ab47","_id":"frontend-app@0.2.7","_shasum":"4e24e0cb6a1c05fad9caea70582d8fef2e1b14b5","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"4e24e0cb6a1c05fad9caea70582d8fef2e1b14b5","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.2.7.tgz","integrity":"sha512-sXZeK8nXLs+QXUjBlblbslg1LoFtPBaD8+l21/IpFqAOHB+qI09k7yVZjfiD6h0aqFRNuE/mnq/RF5k0ifro7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIANWRVMGmqIWb7q9oxqDu0fpvgn+SiejXMrbqmX8j8BiAiAm/hZYYBUJYyH1gNu5lR9jFkSZvRDZyn9++Xlj9MpBNQ=="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.2.7.tgz_1471006816047_0.8048635204322636"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.3.0":{"name":"frontend-app","version":"0.3.0","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and livereload.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"babel src --out-dir lib --copy-files --source-maps --presets es2015,es2016,react --plugins syntax-decorators,transform-do-expressions,transform-function-bind,transform-class-constructor-call,transform-export-extensions,transform-class-properties,transform-object-rest-spread,syntax-trailing-function-commas,transform-async-to-generator,transform-exponentiation-operator,react-require,ng-annotate","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015":"6.13.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.8.0","raw-loader":"0.5.1","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"gitHead":"8ec216cb9f4c2c592f27093e06340da7cc77723a","_id":"frontend-app@0.3.0","_shasum":"6cf61c1ba6a1dbce2f730eda7b04ca46f1e441b1","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"6cf61c1ba6a1dbce2f730eda7b04ca46f1e441b1","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.3.0.tgz","integrity":"sha512-4/gFZfTpFkkkSxAIB3517Er0qw3WImk9YLiDLkZBYGLWfrIZgVdDcJTkkOKyiQn2omriLXsszrqUtTlBVURK5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgklYiGsDDd1U8B9MwkBFJOI/D6OReIqgx9aG3B7G5HQIgKc1SDDCU7oD/NfB8CTeIzAJ1Sgz1YgG0/ZLrfjn++ww="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.3.0.tgz_1471362514067_0.23384476988576353"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.3.1":{"name":"frontend-app","version":"0.3.1","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"babel src --out-dir lib --copy-files --source-maps --presets es2015,es2016,react --plugins syntax-decorators,transform-do-expressions,transform-function-bind,transform-class-constructor-call,transform-export-extensions,transform-class-properties,transform-object-rest-spread,syntax-trailing-function-commas,transform-async-to-generator,transform-exponentiation-operator,react-require,ng-annotate","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config","hot":"webpack-dev-server -d --inline --hot --config node_modules/frontend-app/lib/webpack/config"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-polyfill":"6.13.0","babel-preset-es2015":"6.13.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.8.0","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.2","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-cleanup-plugin":"0.2.0","webpack-dev-server":"2.1.0-beta.0","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"4.8.1"},"gitHead":"d1ec35601ae89d7cc4b5e5ac14aa42335f5706db","_id":"frontend-app@0.3.1","_shasum":"087e39cd28435cb6bcede9dbbb7020b4921c8555","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"087e39cd28435cb6bcede9dbbb7020b4921c8555","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.3.1.tgz","integrity":"sha512-W27OLeDmhA6mZZ9EAG5drv8KhlwxsjIfl519vnGUmmHmKCCVBJgw+aHq944ndUo8qgSTQvWllx1cM0UISaAY9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrAgauVdE2pqVA6OXVOc4oHBm0+SSxCgcni428mACQmQIgNGuc3phQmSVrykI1Y7ep5UsS4kieGX54Ek2JM11wZX0="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.3.1.tgz_1471449687046_0.9051572442986071"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.0":{"name":"frontend-app","version":"0.4.0","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server -d --inline --hot --config node_modules/frontend-app/lib/webpack/config"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.12.0","babel-polyfill":"6.13.0","babel-preset-es2015":"6.13.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","babel-runtime":"6.11.6","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.8.0","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.2","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-cleanup-plugin":"0.2.0","webpack-dev-server":"2.1.0-beta.0","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0"},"gitHead":"ec7f4bcf5cb26f705a658124eb208f4a2f11f33d","_id":"frontend-app@0.4.0","_shasum":"7ba3ce4171a4e878f9104661ce6cb4896067c604","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"7ba3ce4171a4e878f9104661ce6cb4896067c604","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.0.tgz","integrity":"sha512-5j5REDfPRPpSHdBWjvyLAgMLC4Fo+MXgUQeR+90vrsqsW0pRmvARnZg8G81slbxDMTKYXAG5One5H2kyvy7KzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNinWks5jqMWZrcnIQj5qJg+5pcAalMX03/EWGDBCqQgIgS6eHG4euii4KKBXwQkOz6vL5TwujSRsSbJ6pBqBZBFk="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.0.tgz_1471625509170_0.5208161005284637"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.1":{"name":"frontend-app","version":"0.4.1","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server -d --inline --hot --config node_modules/frontend-app/lib/webpack/config"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.12.0","babel-polyfill":"6.13.0","babel-preset-es2015":"6.13.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","babel-runtime":"6.11.6","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.8.0","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.2","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-cleanup-plugin":"0.2.0","webpack-dev-server":"2.1.0-beta.0","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0"},"gitHead":"df12cff670961a8e6ca6d125d3e4f102729cfcf0","_id":"frontend-app@0.4.1","_shasum":"7d569beb2909ceae7f626656b16de4e044a6e990","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"7d569beb2909ceae7f626656b16de4e044a6e990","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.1.tgz","integrity":"sha512-txaOIATAWuZUc2pMrLZwfygwOaS00v/FhFdh9DU5IPcFuxhwObhsVK6wDXBgwtay/j+PyocDRnQy1zSg2m6EUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3XszuuI4n02AldiJuL2gbWPeLllLTHFBcosU0cx5eYgIhAOObAYUaJOsPtfQ/lQns6mt0gjPWL+qRhS6TFPlEtef+"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.1.tgz_1472140005797_0.8683413474354893"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.2":{"name":"frontend-app","version":"0.4.2","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server -d --inline --hot --config node_modules/frontend-app/lib/webpack/config"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.12.0","babel-polyfill":"6.13.0","babel-preset-es2015":"6.13.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","babel-runtime":"6.11.6","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.8.0","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.2","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-cleanup-plugin":"0.2.0","webpack-dev-server":"2.1.0-beta.0","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0"},"gitHead":"9fc623a8c1aa18067281f34935817e38a6745e2a","_id":"frontend-app@0.4.2","_shasum":"00d0a8178122a0a91bfaa883c4d6ea03694dd08b","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"00d0a8178122a0a91bfaa883c4d6ea03694dd08b","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.2.tgz","integrity":"sha512-YdZllVNV5Lkzcn2ee2GjbyznIonj5XTvSd/Tq4QDCJpt1XMvK+2pcgKzF9jkIBKTpZLJi/tT+uLaVcIV+B8RGQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD39ie6fOVRhE8Eiv4oSRi7IYVf9zIPn8DzTOwfmtHq5AIgH3r3EV43gcZUb1AI1UwaX29HxsFe6MLcdN2P8g3BJUI="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.2.tgz_1472486709946_0.8297166456468403"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.3":{"name":"frontend-app","version":"0.4.3","description":"Start using ES2015 and beyond syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server -d --inline --hot --config node_modules/frontend-app/lib/webpack/config"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.11.4","babel-loader":"6.2.4","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.12.0","babel-polyfill":"6.13.0","babel-preset-es2015":"6.13.2","babel-preset-es2016":"6.11.3","babel-preset-react":"6.11.1","babel-preset-stage-3":"6.11.0","babel-runtime":"6.11.6","cross-env":"2.0.0","css-loader":"0.23.1","extract-text-webpack-plugin":"2.0.0-beta.3","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.8.0","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.2","rimraf":"2.5.4","sass-loader":"4.0.0","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.20","webpack-cleanup-plugin":"0.2.0","webpack-dev-server":"2.1.0-beta.0","webpack-livereload-plugin":"0.8.1","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0"},"gitHead":"c12021a249b71909cfa8f9e26ac9e2a2cd392f85","_id":"frontend-app@0.4.3","_shasum":"a9124425c030fee73637f570b103b97f52209c43","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"a9124425c030fee73637f570b103b97f52209c43","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.3.tgz","integrity":"sha512-dZLmiOvNj5VVQmLUvVbo2s6RydF983x0+CtCf9HsH7yArqpmW2T+1fv+ZPjM/TkUw12EOIyT89wWqTVRnOHMZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIByrYzVJebuHOEo23c70WnjHG//Kvabi5InqXq+JHPAHAiEA2IccwazqKDl7T7+Lgv8pk0Jp1CMr748Wb4fypp8u9b8="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.3.tgz_1472838927109_0.30955339898355305"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.4":{"name":"frontend-app","version":"0.4.4","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server -d --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.14.0","babel-loader":"6.2.5","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.13.0","babel-preset-latest":"6.14.0","babel-preset-react":"6.11.1","babel-runtime":"6.11.6","cross-env":"2.0.1","css-loader":"0.25.0","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","lodash":"4.15.0","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.9.3","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.0.1","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.22","webpack-cleanup-plugin":"0.3.1","webpack-dev-server":"2.1.0-beta.3","webpack-livereload-plugin":"0.8.2","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"5.0.0"},"gitHead":"9eee341f0e88f3899b2ede214b1080cdd827c17f","_id":"frontend-app@0.4.4","_shasum":"9c8b61902877b2a5d17e4786e518a3a0d3318329","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"9c8b61902877b2a5d17e4786e518a3a0d3318329","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.4.tgz","integrity":"sha512-/Ex/fcLAHWtTqoAvQNHpIFcno83qy6iAf0kx7+1pL7aiZL0xz+ElQoE8KKGrlnD7fpUPNeFBdfdRe5vh1VBPIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFBXUoLrFnP4Dx5iJUTfhGoC942H2Dh2f8gX7qp4hkFQIgfYz4L2wZXzkHkXZawLKZG9ZEwLYtIDlyk3Pet53Lnrs="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.4.tgz_1473255860680_0.006343907210975885"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.5":{"name":"frontend-app","version":"0.4.5","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack -d --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server -d --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.14.0","babel-loader":"6.2.5","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.13.0","babel-preset-latest":"6.14.0","babel-preset-react":"6.11.1","babel-runtime":"6.11.6","cross-env":"2.0.1","css-loader":"0.25.0","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","lodash":"4.15.0","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.9.3","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.0.1","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.22","webpack-cleanup-plugin":"0.3.1","webpack-dev-server":"2.1.0-beta.3","webpack-livereload-plugin":"0.8.2","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"5.0.0"},"gitHead":"194e7575dd05fdeda9276c81476d37dcd6a2a4ef","_id":"frontend-app@0.4.5","_shasum":"39398c545c7da6533d17fe3e18a4a36e6ca31abd","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"39398c545c7da6533d17fe3e18a4a36e6ca31abd","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.5.tgz","integrity":"sha512-GzzuQ21FvWaor66xkIry0MF1C9eNVbREbwnFE6KWnalv6s4Z2KRFrfLr+okgkqXKzttYg/xzrniOuQBoVn9azA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjb93NYtJA+qxIEuJKdHNjWUjW3khb/IZ5KJP4E5JIFAiEA/uycwmWHcOhA3Ci6qlJJ2c7ts/WWUjwOgEvN6Q4pnEA="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.5.tgz_1473320213560_0.5190999156329781"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.6":{"name":"frontend-app","version":"0.4.6","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.14.0","babel-loader":"6.2.5","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.13.0","babel-preset-latest":"6.14.0","babel-preset-react":"6.11.1","babel-runtime":"6.11.6","cross-env":"2.0.1","css-loader":"0.25.0","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","lodash":"4.15.0","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.9.3","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.0.1","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.22","webpack-cleanup-plugin":"0.3.1","webpack-dev-server":"2.1.0-beta.3","webpack-livereload-plugin":"0.8.2","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","yargs":"5.0.0"},"gitHead":"d71eb39ad89c649e1c54c6d2a96dab5cf2e58d8b","_id":"frontend-app@0.4.6","_shasum":"3b32d16d101eb1785fa96fbeb4e6adb3bfc3b27d","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"3b32d16d101eb1785fa96fbeb4e6adb3bfc3b27d","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.6.tgz","integrity":"sha512-J2K4kB4YD61C339dXN7yIaTJgOA8N7XsEc8E5FF4IfXUG7h7y2hYh1ixrKaaZmI+WYwyXTRuBkoscX9yaLjEFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQ+MqM6n6NRivGuMqyBC5slsjkvrh3vTjCYCTEfaHo9AIhAKpzaovBFgsSVVYUubPbkRxU7i49b0zBJYvmzoAzXBXG"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.6.tgz_1473426774786_0.2041413343977183"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.7":{"name":"frontend-app","version":"0.4.7","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.14.0","babel-loader":"6.2.5","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.13.0","babel-preset-latest":"6.14.0","babel-preset-react":"6.11.1","babel-runtime":"6.11.6","cross-env":"2.0.1","css-loader":"0.25.0","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","lodash":"4.15.0","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.9.3","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.0.1","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.22","webpack-cleanup-plugin":"0.3.1","webpack-dev-server":"2.1.0-beta.3","webpack-livereload-plugin":"0.8.2","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","xml2js":"0.4.17","yargs":"5.0.0"},"gitHead":"70062bce3fdd664ecc4e5ed417fb84129b8b8a6d","_id":"frontend-app@0.4.7","_shasum":"ef71f6d27e20b0524d7e917292b604e7a8b8e4ea","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"ef71f6d27e20b0524d7e917292b604e7a8b8e4ea","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.7.tgz","integrity":"sha512-gUef0BCm6mWzj/LNj5jE6fkPyU86GOFKk3QmksCD3/kUkI5wiq7z+80If96jfiZDmIG1VZEj76QTMD9eBI6BPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4e53nKUuQfaIIvYjlTvWkRXIzZvPvZPvjjJKlWcHYKAiEAt/y7qeqCI5WkoceOY5lS6bFtl568HIvNw21XTy3Hig8="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.7.tgz_1474274541383_0.32358905812725425"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.8":{"name":"frontend-app","version":"0.4.8","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.14.0","babel-loader":"6.2.5","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.13.0","babel-preset-latest":"6.14.0","babel-preset-react":"6.11.1","babel-runtime":"6.11.6","cross-env":"2.0.1","css-loader":"0.25.0","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","lodash":"4.15.0","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.9.3","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.0.1","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.22","webpack-cleanup-plugin":"0.3.1","webpack-dev-server":"2.1.0-beta.3","webpack-livereload-plugin":"0.8.2","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","xml2js":"0.4.17","yargs":"5.0.0"},"gitHead":"c7dceb86ca6228e6f77c7c11ae4a8a1317be34b5","_id":"frontend-app@0.4.8","_shasum":"8ad4be6a7e0312b4cb063f857e489c92032fd0fc","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"8ad4be6a7e0312b4cb063f857e489c92032fd0fc","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.8.tgz","integrity":"sha512-BWLoFuKls8mg9ZQeDlkpwZtbNalclk48SD5Zlugw8xoSyQgLtvnGsG8/xWyS7Ntl5DZnSN4s5maL4RoUlNOeTA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDw0vS2PglAUwqwHgo8Z6xyVxKcoYbwWqTU/7fJkjcXyAiAyNEBF2qoW9o+Ae7Qb47jIhp/3HQguDu9KaKZAQRqvqQ=="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.8.tgz_1474640124018_0.7620114407036453"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.9":{"name":"frontend-app","version":"0.4.9","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.14.0","babel-loader":"6.2.5","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.13.0","babel-preset-latest":"6.14.0","babel-preset-react":"6.11.1","babel-runtime":"6.11.6","cross-env":"2.0.1","css-loader":"0.25.0","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","lodash":"4.15.0","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.9.3","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.0.1","style-loader":"0.13.1","url-loader":"0.5.7","webpack":"2.1.0-beta.22","webpack-cleanup-plugin":"0.3.1","webpack-dev-server":"2.1.0-beta.3","webpack-livereload-plugin":"0.8.2","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","xml2js":"0.4.17","yargs":"5.0.0"},"gitHead":"fc08d9d0929b7a5c97a2e6ea7395b6fb8b66b361","_id":"frontend-app@0.4.9","_shasum":"7365c9cfdc22cdaea7474dd5f27c231cec4852bf","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"7365c9cfdc22cdaea7474dd5f27c231cec4852bf","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.9.tgz","integrity":"sha512-rwOzArZ9mEBy59f2nC7BI4Nd9ydL8KubPjIUeEO++1byYN8afQ2HV8RUiETqh/I+XMj1hoaZQUo8ANuaVwLtJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB+8qy2Ml0Ezkpe7s1MQFkGiV0DhxC1awzuQIecYKwdgIhAJ1bVxVkIFcLzpJEgB4UmmSn1f0f+4D9ZyToi8wxWHOD"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.9.tgz_1474881303770_0.8652685002889484"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.4.10":{"name":"frontend-app","version":"0.4.10","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.14.0","babel-loader":"6.2.5","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"2.1.0","babel-plugin-transform-class-constructor-call":"6.8.0","babel-plugin-transform-class-properties":"6.11.5","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.8.0","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.13.0","babel-preset-latest":"6.14.0","babel-preset-react":"6.11.1","babel-runtime":"6.11.6","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"2.0.1","css-loader":"0.25.0","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"0.30.0","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.1","less-loader":"2.2.3","lodash":"4.15.0","ng-annotate-loader":"0.1.1","ng-annotate-webpack-plugin":"0.1.3","node-sass":"3.9.3","on-build-webpack":"0.1.0","properties":"1.2.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.3","react-intl":"2.2.0","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.0.1","style-loader":"0.13.1","systemjs":"0.19.41","url-loader":"0.5.7","webpack":"2.1.0-beta.22","webpack-cleanup-plugin":"0.3.1","webpack-dev-server":"2.1.0-beta.3","webpack-livereload-plugin":"0.8.2","webpack-merge":"0.14.1","whatwg-fetch":"1.0.0","xml2js":"0.4.17","yargs":"5.0.0"},"gitHead":"aa0f4d9655e8486517464fcfa01b3f6bf34ba3c5","_id":"frontend-app@0.4.10","_shasum":"24b039053ad7c18ef5eac5bf5ee3758f6fc0fea6","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"24b039053ad7c18ef5eac5bf5ee3758f6fc0fea6","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.4.10.tgz","integrity":"sha512-jETmmNQSgD6UPDzyMowkIabme1PAQ9K+XEioOJmt/zccNIGcePdY9OE2nwYQH1P48Vw/DU/JakNint+qHpMw2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5VyW2ce6Ze606nfc2KDRnEBjI7GiJ7DqBfrP8m7MzXgIgfOmef6mzFsgedrbW+ByxwndJaC1UozM6iO0BhZniKqA="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.4.10.tgz_1483104625764_0.12347321584820747"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.5.0":{"name":"frontend-app","version":"0.5.0","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.18.0","babel-loader":"6.2.10","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-transform-class-constructor-call":"6.18.0","babel-plugin-transform-class-properties":"6.19.0","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.20.2","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.20.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-runtime":"6.20.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"3.1.4","css-loader":"0.26.1","extract-text-webpack-plugin":"2.0.0-beta.4","file-loader":"0.9.0","fs-extra":"1.0.0","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"2.2.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.1.3","node-sass":"4.2.0","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.2","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.1.1","style-loader":"0.13.1","systemjs":"0.19.41","url-loader":"0.5.7","webpack":"2.2.0-rc.3","webpack-cleanup-plugin":"0.4.1","webpack-dev-server":"2.2.0-rc.0","webpack-livereload-plugin":"0.9.0","webpack-merge":"2.3.1","whatwg-fetch":"2.0.1","xml2js":"0.4.17","yargs":"6.6.0"},"gitHead":"ce687cee8d9261e661be8fb0bf1bfb35a8a5b3ab","_id":"frontend-app@0.5.0","_shasum":"11f009e4dd005b3a2c428b7dbdf6201c130fb3f2","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"11f009e4dd005b3a2c428b7dbdf6201c130fb3f2","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.5.0.tgz","integrity":"sha512-so53UB5ChUPPGPwE0o1H57KA0p8Dw6sojZVauVlSeQp+XTKDN6wZl8IXDfmuwhZM9GNKSZW4zRA+XavNXpVSEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvinLv+nKpTzXh4JVmimqHSb6sYeulL508Fezlnr1+DAiEAy/WuX++xJQBt3NbsAdYJq3cppOlixi72K15ONuJi8ss="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.5.0.tgz_1484067125253_0.9683889322914183"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.5.1":{"name":"frontend-app","version":"0.5.1","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.18.0","babel-loader":"6.2.10","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-transform-class-constructor-call":"6.18.0","babel-plugin-transform-class-properties":"6.19.0","babel-plugin-transform-do-expressions":"6.8.0","babel-plugin-transform-export-extensions":"6.8.0","babel-plugin-transform-function-bind":"6.8.0","babel-plugin-transform-object-rest-spread":"6.20.2","babel-plugin-transform-runtime":"6.15.0","babel-polyfill":"6.20.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-runtime":"6.20.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"3.1.4","css-loader":"0.26.1","extract-text-webpack-plugin":"2.0.0-beta.5","file-loader":"0.9.0","fs-extra":"2.0.0","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"2.2.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.3.0","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.1.1","style-loader":"0.13.1","systemjs":"0.19.42","url-loader":"0.5.7","webpack":"2.2.0","webpack-cleanup-plugin":"0.4.1","webpack-dev-server":"2.2.0","webpack-livereload-plugin":"0.10.0","webpack-merge":"2.4.0","whatwg-fetch":"2.0.1","xml2js":"0.4.17","yargs":"6.6.0"},"gitHead":"9cf5d009991f19d8372f93424e091e1f866ae36e","_id":"frontend-app@0.5.1","_shasum":"650e13ed0d5af58b17a390d5247ad0d6a2b7f61c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"650e13ed0d5af58b17a390d5247ad0d6a2b7f61c","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.5.1.tgz","integrity":"sha512-VcvAVbunGZooRdlIpbQgeDYTNQlrJtC/f4+ylA4+Pb6N6LZx4wJC6ELv7JFPM1IoUB29Wchs/iICNt3Cc0M6cA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP2TgoQXQ95PHQ24cetiBGdvQRg64OYLUTJJ0i1vw9SAIgXaoltwfhpH6D9Hl5wxAYc086RR/LtC3IdPyj6OCMhSw="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.5.1.tgz_1484740083171_0.4043474772479385"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.6.0":{"name":"frontend-app","version":"0.6.0","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.22.2","babel-loader":"6.2.10","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-syntax-dynamic-import":"6.18.0","babel-plugin-transform-async-generator-functions":"6.22.0","babel-plugin-transform-class-constructor-call":"6.22.0","babel-plugin-transform-class-properties":"6.22.0","babel-plugin-transform-do-expressions":"6.22.0","babel-plugin-transform-export-extensions":"6.22.0","babel-plugin-transform-function-bind":"6.22.0","babel-plugin-transform-object-rest-spread":"6.22.0","babel-plugin-transform-runtime":"6.22.0","babel-polyfill":"6.22.0","babel-preset-latest":"6.22.0","babel-preset-react":"6.22.0","babel-runtime":"6.22.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"3.1.4","css-loader":"0.26.1","extract-text-webpack-plugin":"2.0.0-beta.5","file-loader":"0.10.0","fs-extra":"2.0.0","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"2.2.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.4.0","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.1.1","style-loader":"0.13.1","systemjs":"0.19.42","url-loader":"0.5.7","webpack":"2.2.1","webpack-cleanup-plugin":"0.4.1","webpack-dev-server":"2.2.1","webpack-livereload-plugin":"0.10.0","webpack-merge":"2.6.1","whatwg-fetch":"2.0.2","xml2js":"0.4.17","yargs":"6.6.0"},"gitHead":"c7fecc774a48d0eedc33034e2922a71c4e84b107","_id":"frontend-app@0.6.0","_shasum":"ee5acacfd02af6a6cf1f654dfe7b4fc1390fd7ba","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"ee5acacfd02af6a6cf1f654dfe7b4fc1390fd7ba","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.6.0.tgz","integrity":"sha512-nc7WHtCSiv+7B9RSEVInxQsWfR5LSJp+HitKmSCm98asftZeN+ow3F/fmPuCSvV4lwqYVi+hDEXikkgfH40Tqw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWMGJaTiyqh7SxI5/+ZYt3Y7K2Xm/AnaYueNA0pp3vvgIgWk2qEn3x3XT0PS0m873kQuMfyGNyWM0yUKREXdXeqNE="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.6.0.tgz_1485882511433_0.21890812856145203"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.6.1":{"name":"frontend-app","version":"0.6.1","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.22.2","babel-loader":"6.2.10","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-syntax-dynamic-import":"6.18.0","babel-plugin-transform-async-generator-functions":"6.22.0","babel-plugin-transform-class-constructor-call":"6.22.0","babel-plugin-transform-class-properties":"6.22.0","babel-plugin-transform-do-expressions":"6.22.0","babel-plugin-transform-export-extensions":"6.22.0","babel-plugin-transform-function-bind":"6.22.0","babel-plugin-transform-object-rest-spread":"6.22.0","babel-plugin-transform-runtime":"6.22.0","babel-polyfill":"6.22.0","babel-preset-latest":"6.22.0","babel-preset-react":"6.22.0","babel-runtime":"6.22.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"3.1.4","css-loader":"0.26.1","extract-text-webpack-plugin":"2.0.0-beta.5","file-loader":"0.10.0","fs-extra":"2.0.0","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"2.2.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.4.0","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.1.1","style-loader":"0.13.1","systemjs":"0.19.42","url-loader":"0.5.7","webpack":"2.2.1","webpack-cleanup-plugin":"0.4.1","webpack-dev-server":"2.2.1","webpack-livereload-plugin":"0.10.0","webpack-merge":"2.6.1","whatwg-fetch":"2.0.2","xml2js":"0.4.17","yargs":"6.6.0"},"gitHead":"4a04247be54e2a9ff2f2cfd4acfc6914104c32db","_id":"frontend-app@0.6.1","_shasum":"78c5a09b864a96b23c93f3fa2ad051080270422d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"78c5a09b864a96b23c93f3fa2ad051080270422d","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.6.1.tgz","integrity":"sha512-D5YYY+eARyK1PypOc5R2+LJFaHqB7fVNDGNqC/BL7+D1SZM3rM7r2pX9+wFVrik5Ks3t6qVmAixPNuyJdcispw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCs3xXdg8gvP85fq6JnG7bAUoA4A7blA2xJ+bzq6Ayj7QIhAOALKRj328GxhHUOVuSi83hu2L0ntOQW5Z4SekTZe2Rw"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.6.1.tgz_1486046396576_0.4922408990096301"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.6.2":{"name":"frontend-app","version":"0.6.2","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.22.2","babel-loader":"6.2.10","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-syntax-dynamic-import":"6.18.0","babel-plugin-transform-async-generator-functions":"6.22.0","babel-plugin-transform-class-constructor-call":"6.22.0","babel-plugin-transform-class-properties":"6.22.0","babel-plugin-transform-do-expressions":"6.22.0","babel-plugin-transform-export-extensions":"6.22.0","babel-plugin-transform-function-bind":"6.22.0","babel-plugin-transform-object-rest-spread":"6.22.0","babel-plugin-transform-runtime":"6.22.0","babel-polyfill":"6.22.0","babel-preset-latest":"6.22.0","babel-preset-react":"6.22.0","babel-runtime":"6.22.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"3.1.4","css-loader":"0.26.1","extract-text-webpack-plugin":"2.0.0-beta.5","file-loader":"0.10.0","fs-extra":"2.0.0","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"2.2.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.4.0","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.1.1","style-loader":"0.13.1","systemjs":"0.19.42","url-loader":"0.5.7","webpack":"2.2.1","webpack-cleanup-plugin":"0.4.1","webpack-dev-server":"2.2.1","webpack-livereload-plugin":"0.10.0","webpack-merge":"2.6.1","whatwg-fetch":"2.0.2","xml2js":"0.4.17","yargs":"6.6.0"},"gitHead":"3d708be3d3461194ca272d333296d469f71fa314","_id":"frontend-app@0.6.2","_shasum":"5b4cce625b9661c0c61ec29c62d2b4d65c71f353","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"5b4cce625b9661c0c61ec29c62d2b4d65c71f353","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.6.2.tgz","integrity":"sha512-u7JYg8tf3V31fbu/zTjv8e/f1t3Z/akRQyqHWB2pTzLOxUs49dZrRRmOwanCubiMhTHIKWRKfzsSvzh25i0ksw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8YnjRl2FwXNZBdUKGkk0WiTVKiQFM6FbWRWVKBL7bbQIgNr4NABkwL4Mlrpm+aIxLs7jKSrCerxk+YMMy4ROynm8="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.6.2.tgz_1487944648498_0.5573923129122704"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.6.3":{"name":"frontend-app","version":"0.6.3","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.22.2","babel-loader":"6.2.10","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-syntax-dynamic-import":"6.18.0","babel-plugin-transform-async-generator-functions":"6.22.0","babel-plugin-transform-class-constructor-call":"6.22.0","babel-plugin-transform-class-properties":"6.22.0","babel-plugin-transform-do-expressions":"6.22.0","babel-plugin-transform-export-extensions":"6.22.0","babel-plugin-transform-function-bind":"6.22.0","babel-plugin-transform-object-rest-spread":"6.22.0","babel-plugin-transform-runtime":"6.22.0","babel-polyfill":"6.22.0","babel-preset-latest":"6.22.0","babel-preset-react":"6.22.0","babel-runtime":"6.22.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"3.1.4","css-loader":"0.26.1","extract-text-webpack-plugin":"2.0.0-beta.5","file-loader":"0.10.0","fs-extra":"2.0.0","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"2.2.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.4.0","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.5.4","sass-loader":"4.1.1","style-loader":"0.13.1","systemjs":"0.19.42","url-loader":"0.5.7","webpack":"2.2.1","webpack-cleanup-plugin":"0.4.1","webpack-dev-server":"2.2.1","webpack-livereload-plugin":"0.10.0","webpack-merge":"2.6.1","whatwg-fetch":"2.0.2","xml2js":"0.4.17","yargs":"6.6.0"},"gitHead":"4d91fa464026385a307eb7cb7f563a2c7d8a0017","_id":"frontend-app@0.6.3","_shasum":"2a1c54773cf83f207d49b84324af4a9cc6d12367","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"2a1c54773cf83f207d49b84324af4a9cc6d12367","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.6.3.tgz","integrity":"sha512-gCxydzjYgIiIuNlwx9709keqHjth6Cznlek73ClrPa7TgLtCYvdWCtHyDccY9IuCQDrWytpvj476mgTX29/uCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJmKreP/6oFk870yMR7jsn9nnnzpOY0PJHGI3GkT2OVQIhAMvXQ7h3NfD5MsihIPoc1unM4aCHxRH0P+nW3JmELGPI"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.6.3.tgz_1488810721535_0.2567223182413727"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.6.4":{"name":"frontend-app","version":"0.6.4","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.24.1","babel-loader":"6.4.1","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-syntax-dynamic-import":"6.18.0","babel-plugin-transform-async-generator-functions":"6.24.1","babel-plugin-transform-class-constructor-call":"6.24.1","babel-plugin-transform-class-properties":"6.24.1","babel-plugin-transform-do-expressions":"6.22.0","babel-plugin-transform-export-extensions":"6.22.0","babel-plugin-transform-function-bind":"6.22.0","babel-plugin-transform-object-rest-spread":"6.23.0","babel-plugin-transform-runtime":"6.23.0","babel-polyfill":"6.23.0","babel-preset-env":"1.3.3","babel-preset-react":"6.24.1","babel-runtime":"6.23.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"4.0.0","css-loader":"0.28.0","extract-text-webpack-plugin":"2.1.0","file-loader":"0.11.1","fs-extra":"2.1.2","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"4.0.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.5.2","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.6.1","sass-loader":"6.0.3","style-loader":"0.16.1","systemjs":"0.20.12","url-loader":"0.5.8","webpack":"2.3.3","webpack-cleanup-plugin":"0.5.1","webpack-dev-server":"2.4.2","webpack-livereload-plugin":"0.11.0","webpack-merge":"4.1.0","whatwg-fetch":"2.0.3","xml2js":"0.4.17","yargs":"7.0.2"},"gitHead":"8ce4c2015e9fad2a40d8ea93db1a647d779b1abb","_id":"frontend-app@0.6.4","_shasum":"3c1b91e2d6232dba274b370cb1e2731bb100d8b5","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"3c1b91e2d6232dba274b370cb1e2731bb100d8b5","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.6.4.tgz","integrity":"sha512-TRCGa0mD1noeg2DOqlK+dLW7lfmQad8uBE+MeW/sJJqKOw3fbUwyKMKJ3PpzWkComm/gEbW39obJ4u7UVN8UGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCivrP+XPqdPr3Kh3vYy0gZt4Kjeaocv1uL2PLF66ADTwIhAI+VAeDKRud2Kslz7Qi0IPy33ca9c9bITKmo7kcRCrRN"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.6.4.tgz_1492112052024_0.14312560367397964"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.7.0":{"name":"frontend-app","version":"0.7.0","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","dependencies":{"babel-cli":"6.24.1","babel-loader":"6.4.1","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-syntax-dynamic-import":"6.18.0","babel-plugin-transform-async-generator-functions":"6.24.1","babel-plugin-transform-class-constructor-call":"6.24.1","babel-plugin-transform-class-properties":"6.24.1","babel-plugin-transform-do-expressions":"6.22.0","babel-plugin-transform-export-extensions":"6.22.0","babel-plugin-transform-function-bind":"6.22.0","babel-plugin-transform-object-rest-spread":"6.23.0","babel-plugin-transform-runtime":"6.23.0","babel-polyfill":"6.23.0","babel-preset-env":"1.3.3","babel-preset-react":"6.24.1","babel-runtime":"6.23.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"4.0.0","css-loader":"0.28.0","extract-text-webpack-plugin":"2.1.0","file-loader":"0.11.1","fs-extra":"2.1.2","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"4.0.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.5.2","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.6.1","sass-loader":"6.0.3","style-loader":"0.16.1","systemjs":"0.20.12","url-loader":"0.5.8","webpack":"2.3.3","webpack-cleanup-plugin":"0.5.1","webpack-dev-server":"2.4.2","webpack-livereload-plugin":"0.11.0","webpack-merge":"4.1.0","whatwg-fetch":"2.0.3","xml2js":"0.4.17","yargs":"7.0.2"},"gitHead":"f64fbda8f2a29d4795fffb88be1cc324a566479b","_id":"frontend-app@0.7.0","_shasum":"f1a73839ed25ebf911c77661676d13c65b843563","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"f1a73839ed25ebf911c77661676d13c65b843563","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.7.0.tgz","integrity":"sha512-rpaNNZUdp8o/bZNpm3gtHnnyDhn0hv8ePwr2OdofVUFxByYyFUQYWLwgdySOZhYoUSWlbmrd0fRPeHBNj0cdYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGPQEeV8mH9X2JVLBnMwlDrOtOuIF2G4tx8htTI8YHm/AiEAwZiNKhrPiTUmP6mdlMLz89si/4nomTPkrQ6u7cNCg8A="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/frontend-app-0.7.0.tgz_1492532658856_0.44872898957692087"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.7.1":{"name":"frontend-app","version":"0.7.1","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app.git"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["prettier --single-quote --tab-width 4 --write","git add"]},"license":"ISC","dependencies":{"babel-cli":"6.24.1","babel-loader":"6.4.1","babel-plugin-ng-annotate":"0.3.2","babel-plugin-react-require":"3.0.0","babel-plugin-syntax-dynamic-import":"6.18.0","babel-plugin-transform-async-generator-functions":"6.24.1","babel-plugin-transform-class-constructor-call":"6.24.1","babel-plugin-transform-class-properties":"6.24.1","babel-plugin-transform-do-expressions":"6.22.0","babel-plugin-transform-export-extensions":"6.22.0","babel-plugin-transform-function-bind":"6.22.0","babel-plugin-transform-object-rest-spread":"6.23.0","babel-plugin-transform-runtime":"6.23.0","babel-polyfill":"6.23.0","babel-preset-env":"1.3.3","babel-preset-react":"6.24.1","babel-runtime":"6.23.0","chokidar":"1.6.1","copy-webpack-plugin":"4.0.1","cross-env":"4.0.0","css-loader":"0.28.0","extract-text-webpack-plugin":"2.1.0","file-loader":"0.11.1","fs-extra":"2.1.2","handlebars-template-loader":"0.7.0","intl":"1.2.5","json-loader":"0.5.4","less":"2.7.2","less-loader":"4.0.3","lodash":"4.17.4","ng-annotate-loader":"0.2.0","ng-annotate-webpack-plugin":"0.2.0","node-sass":"4.5.2","on-build-webpack":"0.1.0","properties":"1.2.1","properties-loader":"0.0.1","raw-loader":"0.5.1","react-hot-loader":"3.0.0-beta.6","react-intl":"2.2.3","recursive-readdir-sync":"1.0.6","rimraf":"2.6.1","sass-loader":"6.0.3","style-loader":"0.16.1","systemjs":"0.20.12","url-loader":"0.5.8","webpack":"2.3.3","webpack-cleanup-plugin":"0.5.1","webpack-dev-server":"2.4.2","webpack-livereload-plugin":"0.11.0","webpack-merge":"4.1.0","whatwg-fetch":"2.0.3","xml2js":"0.4.17","yargs":"7.0.2"},"devDependencies":{"husky":"^0.13.3","lint-staged":"^3.4.1","prettier":"^1.3.1"},"gitHead":"9cf9aefae3901cfeb1c88b9b4976cf5712cd75bf","_id":"frontend-app@0.7.1","_shasum":"d82c62b105197fd8cc75e8d9577d61c65b9df67a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.3.1","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"shasum":"d82c62b105197fd8cc75e8d9577d61c65b9df67a","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.7.1.tgz","integrity":"sha512-Jfoac8plvgiOq1ZZ7G0VtPOsk1f3fDEvZ0tTyc7vHStf4RTLv+yiwngNPuBB7/IZDtNy5hpk8X/mpplK/0YFJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkp628SsoYCTi+pYUrUInSeSdQeH+VqjlYY7ZAf05CHwIhALgjk8IvPpkAjp8kdeBvxQqZIexAqmctKYmdo3BTGH1c"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/frontend-app-0.7.1.tgz_1493991692404_0.5481333087664098"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.8.0":{"name":"frontend-app","version":"0.8.0","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["prettier --single-quote --tab-width 4 --write","git add"]},"license":"ISC","dependencies":{"babel-cli":"^6.24.1","babel-loader":"^7.1.1","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","babel-plugin-syntax-dynamic-import":"^6.18.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-class-constructor-call":"^6.24.1","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-do-expressions":"^6.22.0","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-function-bind":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-plugin-transform-runtime":"^6.23.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.6.0","babel-preset-react":"^6.24.1","babel-runtime":"^6.23.0","chokidar":"^1.7.0","copy-webpack-plugin":"^4.0.1","cross-env":"^5.0.1","css-loader":"^0.28.4","extract-text-webpack-plugin":"^2.1.2","file-loader":"^0.11.2","fs-extra":"^3.0.1","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.4","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.5.3","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^0.5.1","react-hot-loader":"^3.0.0-beta.7","react-intl":"^2.3.0","recursive-readdir-sync":"^1.0.6","rimraf":"^2.6.1","sass-loader":"^6.0.6","style-loader":"^0.18.2","systemjs":"^0.20.14","url-loader":"^0.5.9","webpack":"^3.1.0","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.5.1","webpack-livereload-plugin":"^0.11.0","webpack-manifest-plugin":"^1.1.2","webpack-merge":"^4.1.0","whatwg-fetch":"^2.0.3","xml2js":"^0.4.17","yargs":"^8.0.2"},"devDependencies":{"husky":"^0.13.3","lint-staged":"^3.4.1","prettier":"^1.3.1"},"gitHead":"bbcf7a1dcce7c56db8131435db48e012f2f6d22b","_id":"frontend-app@0.8.0","_npmVersion":"5.1.0","_nodeVersion":"8.1.3","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-+csw5YxY6DKOwXfvyMxPL9cayISDWe9WP5C13xDQg9OYPNlYCJ0u6Gu6NObT0oizyxUFeCPkKSeWATzGlKcKjw==","shasum":"8ab87ccf9d1dbc9ea126b0a896a248e7110a91b7","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.8.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDId0WB2DX0qNpSLerqC8GDwJxt3U25+WmvMRWF67/SYQIhAKk8O16ZGx/IwAcr57fovzIQR/nhm9sDKwGB+tyhcB1m"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-0.8.0.tgz_1499699728419_0.49373764893971384"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"0.8.1":{"name":"frontend-app","version":"0.8.1","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","prettier:opts":"prettier --single-quote --tab-width 4 --write","prettier":"npm run prettier:opts -- ./src/**/*.js","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"node node_modules/frontend-app/lib/init"},"bin":{"frontend-app-transform-properties-to-json":"./lib/bin/transformPropertiesToJson.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"babel-cli":"^6.24.1","babel-loader":"^7.1.1","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","babel-plugin-syntax-dynamic-import":"^6.18.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-class-constructor-call":"^6.24.1","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-do-expressions":"^6.22.0","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-function-bind":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-plugin-transform-runtime":"^6.23.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.6.0","babel-preset-react":"^6.24.1","babel-runtime":"^6.23.0","chokidar":"^1.7.0","copy-webpack-plugin":"^4.0.1","cross-env":"^5.0.1","css-loader":"^0.28.4","extract-text-webpack-plugin":"^3.0.0","file-loader":"^0.11.2","fs-extra":"^4.0.0","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.4","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.5.3","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^0.5.1","react-hot-loader":"^3.0.0-beta.7","react-intl":"^2.3.0","recursive-readdir-sync":"^1.0.6","rimraf":"^2.6.1","sass-loader":"^6.0.6","style-loader":"^0.18.2","systemjs":"^0.20.15","url-loader":"^0.5.9","webpack":"^3.3.0","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.5.1","webpack-livereload-plugin":"^0.11.0","webpack-manifest-plugin":"^1.1.2","webpack-merge":"^4.1.0","whatwg-fetch":"^2.0.3","xml2js":"^0.4.17","yargs":"^8.0.2"},"devDependencies":{"husky":"^0.14.3","lint-staged":"^4.0.2","prettier":"^1.5.3"},"gitHead":"b91d869da541c76e72a074364b90414a9415676b","_id":"frontend-app@0.8.1","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-wef9yqkkN2OgppmP8Jaj69QL1kMCEhaiK/rLK9dmQrLmKgMuvM/0LST7+h0EDxOqdJNEtPAVHyuogu5yXHb11w==","shasum":"0c96f7c982168db403ab6e8f14d4a8cb70f6141e","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-0.8.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpGLY//u0YooLrQH8YkoxftHMNbF4I6hMUVWJG21I2uwIgXraO/Z8yC/OVCoe8Vqlq9U8vKh8rXAPKQRYseOngTDY="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-0.8.1.tgz_1500472730116_0.6848466908559203"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"1.0.0":{"name":"frontend-app","version":"1.0.0","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","prettier:opts":"prettier --single-quote --tab-width 4 --write","prettier":"npm run prettier:opts -- ./examples/**/*.js ./src/**/*.js","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"frontend-app init"},"bin":{"frontend-app":"./lib/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"babel-cli":"^6.24.1","babel-loader":"^7.1.1","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","babel-plugin-syntax-dynamic-import":"^6.18.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-class-constructor-call":"^6.24.1","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-do-expressions":"^6.22.0","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-function-bind":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-plugin-transform-runtime":"^6.23.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.6.0","babel-preset-react":"^6.24.1","babel-runtime":"^6.25.0","chokidar":"^1.7.0","copy-webpack-plugin":"^4.0.1","cross-env":"^5.0.5","css-loader":"^0.28.4","extract-text-webpack-plugin":"^3.0.0","file-loader":"^0.11.2","fs-extra":"^4.0.1","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.5.3","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^0.5.1","react-hot-loader":"^3.0.0-beta.7","react-intl":"^2.3.0","recursive-readdir-sync":"^1.0.6","rimraf":"^2.6.1","sass-loader":"^6.0.6","style-loader":"^0.18.2","systemjs":"^0.20.17","url-loader":"^0.5.9","webpack":"^3.5.4","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.7.1","webpack-livereload-plugin":"^0.11.0","webpack-manifest-plugin":"^1.3.1","webpack-merge":"^4.1.0","whatwg-fetch":"^2.0.3","xml2js":"^0.4.18","yargs":"^8.0.2"},"devDependencies":{"husky":"^0.14.3","lint-staged":"^4.0.3","prettier":"^1.5.3"},"gitHead":"c5cd35b3904e1d5181d41d5f8a05f35f21dbdd08","_id":"frontend-app@1.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-3AoECiM2hYflMyKD/z7KQhUc9PrS0CuTZyReUgSe/nBmzG0KXMKrFmoT6U0DQyHy5BUR2+yhjt9WPB6c/5DLZw==","shasum":"b70138be1b22a957de1be09150c0258c36122b5d","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvGwH+ikBaNYk5Ks62EBsqRfDUjKPe9Fo7IJUb4V542wIgP3KgVu3jLPPDdq2Jm9ELDx8voHVr1FtPiDsBCJ4AodM="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-1.0.0.tgz_1502781564441_0.803379203658551"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"1.1.0":{"name":"frontend-app","version":"1.1.0","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","prettier:opts":"prettier --single-quote --tab-width 4 --write","prettier":"npm run prettier:opts -- ./examples/**/*.js ./src/**/*.js","build":"npm run inbuild --","inbuild":"cross-env BABEL_ENV=lib babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"frontend-app init"},"bin":{"frontend-app":"./lib/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","babel-plugin-syntax-dynamic-import":"^6.18.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-class-constructor-call":"^6.24.1","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-do-expressions":"^6.22.0","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-function-bind":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.0","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","chokidar":"^1.7.0","copy-webpack-plugin":"^4.0.1","cross-env":"^5.0.5","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.0","file-loader":"^0.11.2","fs-extra":"^4.0.2","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.5.3","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^0.5.1","react-hot-loader":"^3.0.0-beta.7","react-intl":"^2.4.0","recursive-readdir-sync":"^1.0.6","rimraf":"^2.6.2","sass-loader":"^6.0.6","style-loader":"^0.18.2","systemjs":"^0.20.19","url-loader":"^0.5.9","webpack":"^3.6.0","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.8.2","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.0","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^9.0.1"},"devDependencies":{"husky":"^0.14.3","lint-staged":"^4.2.3","prettier":"^1.7.0"},"gitHead":"d365108cbb2b2e09cd91757a5133447d0da593b6","_id":"frontend-app@1.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.1.3","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-vLQ3XvRUvyuDNxfrSkrzH6Kl9K2wd3I4dRiIuyV5gUKlA5xox5abEGDwzhZP4dlcKm+2vLlPiR6KUEtpCXF2jw==","shasum":"cc8f3a8c4a579aec824aba3efbd6b06739aaece3","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG/7IejcyK/Vo5FE/UotUuWlv1BCViWK5PGnMrkWHBNFAiEA1XR7qiqBPC9sSEv6hWiDjpMbsxLB/FNruhkjEiim8kI="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-1.1.0.tgz_1506495586436_0.8518621183466166"},"directories":{},"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"1.2.0-0":{"name":"frontend-app","version":"1.2.0-0","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","prettier:opts":"prettier --config .prettierconfig.json --write","prettier":"npm run prettier:opts -- examples/**/*.js examples/**/*.json src/**/*.js src/**/*.json .eslintrc.json .prettierconfig.json package.json","build":"npm run inbuild --","inbuild":"babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"frontend-app init"},"bin":{"frontend-app":"./lib/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"babel-cli":"^7.0.0-beta.2","babel-loader":"^7.1.2","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","babel-plugin-transform-class-properties":"^7.0.0-beta.2","babel-plugin-transform-runtime":"^7.0.0-beta.2","babel-polyfill":"^7.0.0-beta.2","babel-preset-env":"^2.0.0-beta.2","babel-preset-react":"^7.0.0-beta.2","babel-preset-stage-0":"^7.0.0-beta.2","babel-runtime":"^7.0.0-beta.2","chokidar":"^1.7.0","copy-webpack-plugin":"^4.1.1","cross-env":"^5.0.5","cross-spawn":"^5.1.0","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.1","file-loader":"^1.1.5","fs-extra":"^4.0.2","handlebars-template-loader":"^0.8.0","hoist-non-react-statics":"^2.3.1","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.5.3","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^1.0.0-beta.0","react-hot-loader":"^3.0.0-beta.7","react-intl":"^2.4.0","recursive-readdir-sync":"^1.0.6","rimraf":"^2.6.2","sass-loader":"^6.0.6","style-loader":"^0.19.0","url-loader":"^0.6.2","webpack":"^3.6.0","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.8.2","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.0","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^9.0.1"},"devDependencies":{"babel-register":"^7.0.0-beta.2","husky":"^0.14.3","lint-staged":"^4.2.3","prettier":"^1.7.4"},"config":{"frontendApp":{"type":"lib"}},"gitHead":"67af8462e900924f625ad704785a8b2683cb1a3a","_id":"frontend-app@1.2.0-0","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-/KyDIYvaeKnfDi0qOftdFxp6ancOI1ovTuePid+xFpdEHrWW3m/T8ugbA3EeQwqRhCWFAVO0CaUthwFl+dgdyA==","shasum":"7d7d44754e0ef6b51fb76e631f15dd497193e8a1","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.2.0-0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdr3hy7mXZ/bhDQ1LQndiAmaB2WxSXPJ+o6W34mT9wKAiBbJUET6EI080eNtXpy8snlbzfT4Lxnj+V7m+DY0xYzzw=="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-1.2.0-0.tgz_1507403406841_0.008436542470008135"},"directories":{}},"1.2.0-1":{"name":"frontend-app","version":"1.2.0-1","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","prettier:opts":"prettier --config .prettierconfig.json --write","prettier":"npm run prettier:opts -- examples/**/*.js examples/**/*.json src/**/*.js src/**/*.json .eslintrc.json .prettierconfig.json package.json","build":"npm run inbuild --","inbuild":"babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"frontend-app init"},"bin":{"frontend-app":"./lib/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"babel-cli":"^7.0.0-beta.3","babel-loader":"^7.1.2","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","babel-plugin-transform-class-properties":"^7.0.0-beta.3","babel-plugin-transform-runtime":"^7.0.0-beta.3","babel-polyfill":"^7.0.0-beta.3","babel-preset-env":"^7.0.0-beta.3","babel-preset-react":"^7.0.0-beta.3","babel-preset-stage-0":"^7.0.0-beta.3","babel-runtime":"^7.0.0-beta.3","chokidar":"^1.7.0","copy-webpack-plugin":"^4.2.0","cross-env":"^5.1.0","cross-spawn":"^5.1.0","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.1","file-loader":"^1.1.5","fs-extra":"^4.0.2","fs-readdir-recursive":"^1.0.0","handlebars-template-loader":"^0.8.0","hoist-non-react-statics":"^2.3.1","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.5.3","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^1.0.0-beta.0","react-hot-loader":"^3.1.1","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.6","style-loader":"^0.19.0","url-loader":"^0.6.2","webpack":"^3.8.1","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.9.3","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.0","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^9.0.1"},"devDependencies":{"babel-register":"^7.0.0-beta.3","husky":"^0.14.3","lint-staged":"^4.3.0","prettier":"^1.7.4"},"config":{"frontendApp":{"type":"lib"}},"gitHead":"fde14ce1d0cb0595f6e77d826bb7d4dfa68e7c8c","_id":"frontend-app@1.2.0-1","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-ibR1ajUZ8PB9YSJCFsl6HO/mNZ7ER2bbmWmCdPsZUCq6imKLkYtnfc9O7+1AST/FT/6eIMFk7bXM2qt2UGFVDA==","shasum":"985f7c81280804e0fad69451371dd8ad0e9c329c","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.2.0-1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhgtsEzVWzAaZa7sl7KXFupuxF5UpNDoPKCFqDIYAHTgIhAI8YMf1RHQmT1EQUcx8oVQbLn9oFjHlYaVr4JbxdT5ZJ"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-1.2.0-1.tgz_1508517721083_0.0974665132816881"},"directories":{}},"1.2.0-beta.2":{"name":"frontend-app","version":"1.2.0-beta.2","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","prettier:opts":"prettier --config .prettierconfig.json --write","prettier":"npm run prettier:opts -- examples/**/*.js examples/**/*.json src/**/*.js src/**/*.json .eslintrc.json .prettierconfig.json package.json","build":"npm run inbuild --","inbuild":"babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"frontend-app init"},"bin":{"frontend-app":"./lib/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"babel-cli":"^7.0.0-beta.3","babel-loader":"^7.1.2","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","babel-plugin-transform-class-properties":"^7.0.0-beta.3","babel-plugin-transform-runtime":"^7.0.0-beta.3","babel-polyfill":"^7.0.0-beta.3","babel-preset-env":"^7.0.0-beta.3","babel-preset-react":"^7.0.0-beta.3","babel-preset-stage-0":"^7.0.0-beta.3","babel-runtime":"^7.0.0-beta.3","chokidar":"^1.7.0","copy-webpack-plugin":"^4.2.0","cross-env":"^5.1.0","cross-spawn":"^5.1.0","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.1","file-loader":"^1.1.5","fs-extra":"^4.0.2","fs-readdir-recursive":"^1.0.0","handlebars-template-loader":"^0.8.0","hoist-non-react-statics":"^2.3.1","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.5.3","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^1.0.0-beta.0","react-hot-loader":"^3.1.1","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.6","style-loader":"^0.19.0","url-loader":"^0.6.2","webpack":"^3.8.1","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.9.3","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.0","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^9.0.1"},"devDependencies":{"babel-register":"^7.0.0-beta.3","husky":"^0.14.3","lint-staged":"^4.3.0","prettier":"^1.7.4"},"config":{"frontendApp":{"type":"lib"}},"gitHead":"f58ea4fc637c4c2bfae1dfc971339178c8f7955c","_id":"frontend-app@1.2.0-beta.2","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-8c6u83IwTeXfRBhJUaw8r0OeAqqfcG7D7QwnSwIjGBZKoSp2fjmGBl0bVmpayDBQkCkQwJYIFC5tIaXCF/RpPQ==","shasum":"e993b01119f5a1205830facd765b07f365fc9f04","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.2.0-beta.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5de1LcZUJ5w4fPbeuSZJ2d3qITi6U/4S4B3zwudgL+AiB66eUbCsWi35he06wyWMf1byqRXVn1jvPONwFj4NcLHA=="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-1.2.0-beta.2.tgz_1508836273895_0.7098152490798384"},"directories":{}},"1.2.0-beta.3":{"name":"frontend-app","version":"1.2.0-beta.3","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"postbuild":"node lib/dev/postbuild","postinstall":"node lib/postinstall","prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","precommit":"lint-staged","prettier:opts":"prettier --config .prettierconfig.json --write","prettier":"npm run prettier:opts -- examples/**/*.js examples/**/*.json src/**/*.js src/**/*.json .eslintrc.json .prettierconfig.json package.json","build":"npm run inbuild --","inbuild":"babel src --out-dir lib --copy-files --source-maps","bundle":"cross-env NODE_ENV=production webpack -p --progress --config node_modules/frontend-app/lib/webpack/config","dev":"cross-env NODE_ENV=development webpack --progress --watch --config node_modules/frontend-app/lib/webpack/config","dev-server":"cross-env NODE_ENV=development webpack-dev-server --inline --hot --config node_modules/frontend-app/lib/webpack/config","init":"frontend-app init"},"bin":{"frontend-app":"./lib/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.32","@babel/core":"^7.0.0-beta.32","@babel/plugin-proposal-class-properties":"^7.0.0-beta.32","@babel/plugin-transform-runtime":"^7.0.0-beta.32","@babel/polyfill":"^7.0.0-beta.32","@babel/preset-env":"^7.0.0-beta.32","@babel/preset-react":"^7.0.0-beta.32","@babel/preset-stage-0":"^7.0.0-beta.32","@babel/register":"^7.0.0-beta.32","@babel/runtime":"^7.0.0-beta.32","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","chokidar":"^1.7.0","copy-webpack-plugin":"^4.2.0","cross-env":"^5.1.1","cross-spawn":"^5.1.0","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","fs-extra":"^4.0.2","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.3","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.6.1","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^1.0.0-beta.0","react-hot-loader":"^3.1.2","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.6","style-loader":"^0.19.0","url-loader":"^0.6.2","webpack":"^3.8.1","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.9.4","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^10.0.3"},"devDependencies":{"@babel/register":"^7.0.0-beta.32","husky":"^0.14.3","lint-staged":"^5.0.0","prettier":"^1.8.2"},"config":{"frontendApp":{"type":"lib"}},"gitHead":"dfa158608e0f195806ef912d30e234ab39d80359","_id":"frontend-app@1.2.0-beta.3","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-39hWBzVwQ2Ohz87UCJxgZxHF+1wt8reTSQ1Jv2yq752WHNoFzwa9Mvt6Vs3hfwbPVpBlOB9xB/XTnEHdXc3kow==","shasum":"5dd812a414f5bfa19478966408c1e7cb77dc6a32","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.2.0-beta.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuQgFu6+8v98I4RX306r1ZyqezASlP/ZMd3Wm3MUdw+gIhAMZjzeH5uX161Gnu1Ni2Z4lHirKqjwBitqk2WqYzOZzi"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-1.2.0-beta.3.tgz_1510665085610_0.6884758891537786"},"directories":{}},"1.2.0-beta.4":{"name":"frontend-app","version":"1.2.0-beta.4","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"prepublish":"npm run build -- --source-maps false","prebuild":"rimraf lib","//precommit":"lint-staged","prettier:opts":"prettier --config .prettierrc.yml --write","prettier":"npm run prettier:opts -- examples/**/*.js examples/**/*.json src/**/*.js src/**/*.json package.json","build":"npm run inbuild --","inbuild":"babel src --out-dir lib --copy-files --source-maps","lint":"eslint examples/** src/**"},"bin":{"frontend-app":"./lib/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"**.js":["eslint --fix","npm run prettier:opts","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.32","@babel/core":"^7.0.0-beta.32","@babel/plugin-proposal-class-properties":"^7.0.0-beta.32","@babel/plugin-transform-runtime":"^7.0.0-beta.32","@babel/polyfill":"^7.0.0-beta.32","@babel/preset-env":"^7.0.0-beta.32","@babel/preset-react":"^7.0.0-beta.32","@babel/preset-stage-0":"^7.0.0-beta.32","@babel/register":"^7.0.0-beta.32","@babel/runtime":"^7.0.0-beta.32","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","chokidar":"^1.7.0","copy-webpack-plugin":"^4.2.0","cross-env":"^5.1.1","cross-spawn":"^5.1.0","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","fs-extra":"^4.0.2","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.3","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.6.1","on-build-webpack":"^0.1.0","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^1.0.0-beta.0","react-hot-loader":"^3.1.2","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.6","source-map-loader":"^0.2.3","style-loader":"^0.19.0","url-loader":"^0.6.2","webpack":"^3.8.1","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.9.4","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^10.0.3"},"devDependencies":{"@babel/register":"^7.0.0-beta.32","babel-eslint":"^8.0.3","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^2.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","husky":"^0.14.3","lint-staged":"^5.0.0","prettier":"^1.8.2"},"config":{"frontendApp":{"type":"lib"}},"gitHead":"bc743f1b0aebbfd84d4d332e14978a0d17cacecb","_id":"frontend-app@1.2.0-beta.4","_npmVersion":"5.6.0","_nodeVersion":"9.2.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-6PV0iJIoAxt2MDtUKQK3fp4StPQbX0j99l0KA1By8RJTCWNCUoWZmnRfqqNlB7aEw4rNIDGDSajccy1/pV3fdA==","shasum":"c177603d3a4accf04b34ddc27d65a569fcc9bc93","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.2.0-beta.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICfpACWJ2nni7rwpepiR1ViKDc9Yitl7ozq6gdrjWHVsAiAfoZrKie27NtAJ1muVRnPG7mY2IK3m9eXsKV0ZpX1kOQ=="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app-1.2.0-beta.4.tgz_1514395643101_0.980891786981374"},"directories":{}},"2.0.0-beta.0":{"name":"frontend-app","version":"2.0.0-beta.0","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"prebuild":"rimraf cjs es","prettier":"npm run prettier:write -- {.,{examples,src}/**}/*.{js,json} !./package-lock.json","build":"npm run inbuild --","inbuild":"library-util babel","lint":"npm run eslint && npm run prettier","eslint":"eslint {.,{examples,src}/**}/*.js --fix","precommit":"lint-staged","prepack":"npm run build","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{json,css,md}":["prettier --write","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.40","@babel/core":"^7.0.0-beta.40","@babel/plugin-proposal-class-properties":"^7.0.0-beta.40","@babel/plugin-transform-runtime":"^7.0.0-beta.40","@babel/polyfill":"^7.0.0-beta.40","@babel/preset-env":"^7.0.0-beta.40","@babel/preset-react":"^7.0.0-beta.40","@babel/preset-stage-0":"^7.0.0-beta.40","@babel/runtime":"^7.0.0-beta.40","autoprefixer":"^8.1.0","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","chokidar":"^2.0.2","copy-webpack-plugin":"^4.5.1","cross-env":"^5.1.4","cross-spawn":"^6.0.5","css-loader":"^0.28.10","file-loader":"^1.1.11","fs-extra":"^5.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.0.1","less-loader":"^4.1.0","lodash":"^4.17.5","mini-css-extract-plugin":"^0.2.0","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.7.2","on-build-webpack":"^0.1.0","postcss-loader":"^2.1.1","precss":"^3.1.2","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^0.5.1","react-hot-loader":"^4.0.0","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.7","source-map-loader":"^0.2.3","style-loader":"^0.20.3","url-loader":"^1.0.1","webpack":"^4.1.1","webpack-cleanup-plugin":"^0.5.1","webpack-cli":"^2.0.11","webpack-dev-server":"^3.1.1","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.0-rc.2","webpack-merge":"^4.1.2","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^11.0.0"},"devDependencies":{"@babel/register":"^7.0.0-beta.40","library-util":"^0.1.6"},"main":"cjs","module":"es","files":["cjs","es","examples"],"readme":"# frontend-app\r\n\r\nStart using latest [ES syntax](https://babeljs.io/docs/learn-es2015/) and [features](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference), Livereload and Hot Module Replacement.\r\n\r\nThis includes [babel-polyfill](https://babeljs.io/docs/usage/polyfill/) and [whatwg-fetch](https://github.com/github/fetch) polyfill and transpiles code using [env](https://babeljs.io/docs/plugins/preset-env/) and [stage-0](http://babeljs.io/docs/plugins/preset-stage-0/) Babel presets, so you may use many new features of the language out-of-the-box.\r\n\r\n[JSX](https://facebook.github.io/react/docs/jsx-in-depth.html) and AngularJS dependency injection annotations ([babel-plugin-ng-annotate](https://www.npmjs.com/package/babel-plugin-ng-annotate), [ng-annotate](https://github.com/olov/ng-annotate)) are also supported.\r\n\r\n## Contents\r\n\r\n* [Getting Started](#getting-started)\r\n* [Commands](#commands)\r\n  * [init](#init)\r\n* [Scripts](#scripts)\r\n  * [build](#build)\r\n  * [dev](#dev)\r\n  * [dev-server](#dev-server)\r\n  * [build](#build)\r\n* [Options](#options)\r\n  * [type](#type)\r\n  * [port](#port)\r\n  * [devServer.port](#devserverport)\r\n  * [intl](#intl)\r\n  * [intl.locales](#intllocales)\r\n  * [polyfills](#polyfills)\r\n* [React Intl helper Components](#react-intl-helper-components)\r\n  * [Localize](#localize)\r\n* [List of Preconfigured Loaders](#list-of-preconfigured-loaders)\r\n* [Livereload](#livereload)\r\n  * [Livereload in Liferay](#livereload-in-liferay)\r\n* [Dev Server](#dev-server)\r\n  * [Options](#options-1)\r\n* [Single Entry](#single-entry--srcentryjs-)\r\n* [Multiple Entries](#multiple-entries--srcentries-)\r\n* [Examples](#examples)\r\n  * [React](#react)\r\n  * [React (multiple entries)](#react-multiple-entries)\r\n  * [Angular](#angular)\r\n* [Cookbook](#cookbook)\r\n  * [Custom Webpack Configuration](#custom-webpack-configuration)\r\n  * [Hot Module Replacement with React](#hot-module-replacement-with-react)\r\n  * [History API Fallback with HTML Webpack Plugin](#history-api-fallback-with-html-webpack-plugin)\r\n  * [CKEditor from /libs/ckeditor](#ckeditor-from-libsckeditor)\r\n  * [CKEditor from node_modules](#ckeditor-from-node_modules)\r\n  * [Font Awesome](#font-awesome)\r\n  * [Different output.publicPath in production](#different-outputpublicpath-in-production)\r\n  * [Maven](#maven)\r\n  * [.gitignore](#gitignore)\r\n\r\n## Getting Started\r\n\r\n![one] Make sure you have at least Node.js v6 and npm v5.2 installed:\r\n\r\n```sh\r\nnode -v\r\nnpm -v\r\n```\r\n\r\n![two] Create `package.json` and install frontend-app:\r\n\r\n```sh\r\nmkdir my-app\r\ncd my-app\r\nnpm init -y\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![three] Install one of the [examples](#examples) or have your app [entry point](#single-entry-srcentryjs)(s) in `src` directory and then:\r\n\r\n```sh\r\nnpm run build\r\n```\r\n\r\n## Commands\r\n\r\n##### init\r\n\r\nInitialize [example project](#examples).\r\n\r\n```sh\r\nnpx frontend-app init <example-name>\r\n```\r\n\r\n## Scripts\r\n\r\n##### build\r\n\r\nFiles are transpiled, bundled and minified to the `dist` directory and are ready to be served. Source maps are also generated.\r\n\r\nYou may pass additional arguments to [Webpack](https://webpack.github.io/docs/) using `--`. For example, don't show progress information:\r\n\r\n```\r\nnpm run build -- --progress false\r\n```\r\n\r\n##### dev\r\n\r\nBundle files to disk in watch mode (see [Livereload](#livereload)).\r\n\r\n##### dev-server\r\n\r\nBundle files in watch mode (see [Dev Server](#dev-server)).\r\n\r\n## Options\r\n\r\nYou may use `package.json` `config` field to set options. Example:\r\n\r\n```json\r\n{\r\n  \"name\": \"my-app\",\r\n  \"config\": {\r\n    \"frontendApp\": {\r\n      \"type\": \"react\",\r\n      \"port\": \"8080\",\r\n      \"devServer\": {\r\n        \"port\": \"8081\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n##### type\r\n\r\n* **`react`**: Adds JSX support.\r\n* **`angular`**: Adds ng-annotate support.\r\n* **`all`**: Support JSX and ng-annotate. `ng-strict-di` is not supported in livereload mode.\r\n* **`slim`** **(default)**: Just ES2015. No React or Angular specific transformations.\r\n* **`portlet`**: Sets [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in Spring MVC Liferay plugin project built with Maven. `publicPath` is determined by `artifactId` in `pom.xml`.\r\n\r\nMultiple values are also supported. `package.json` `config.frontendApp` property example:\r\n\r\n```json\r\n{\r\n  \"type\": [\"angular\", \"portlet\"]\r\n}\r\n```\r\n\r\n##### intl\r\n\r\nSet `\"intl\": \"true\"` to use [React Intl](https://github.com/yahoo/react-intl) helpers and default list of available locales.\r\n\r\n##### intl.locales\r\n\r\nAvailable locales for [Moment.js](http://momentjs.com/), React Intl and [Intl](https://www.npmjs.com/package/intl). **Default:** `[\"fi\", \"sv\", \"en\"]` (When `\"intl\": \"true\"`).\r\n\r\n##### polyfills\r\n\r\nIncluded polyfills. **Default:** `[\"babel-polyfill\", \"whatwg-fetch\"]`. Set `\"false\"` to not include any polyfills.\r\n\r\n## React Intl helper Components\r\n\r\n### `Localize`\r\n\r\n| prop             | Default value | Description                                                                           |\r\n| ---------------- | ------------- | ------------------------------------------------------------------------------------- |\r\n| `locale`         | `undefined`   | Application locale, if set.                                                           |\r\n| `defaultLocale`  | `'en-US'`     | Fallback value, if getting value from localStorage or detecting browser locale fails. |\r\n| `onChangeLocale` | `undefined`   | Callback function gets called with new value when locale changes.                     |\r\n\r\nExample `./src/components/App/index.js`:\r\n\r\n```js\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport Localize, { Selector } from \"frontend-app/es/react/intl\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport default () => (\r\n  <BrowserRouter>\r\n    <Localize locale=\"fi-FI\">\r\n      <h1>\r\n        <FormattedMessage id={`${module.id}.title`} />\r\n      </h1>\r\n      <Selector\r\n        locales={[\r\n          { locale: \"fi-FI\", children: \"Suomeksi\" },\r\n          { locale: \"en-US\", children: \"English\" }\r\n        ]}\r\n        style={{ marginRight: \".4em\" }}\r\n      />\r\n    </Localize>\r\n  </BrowserRouter>\r\n);\r\n```\r\n\r\nExample default messages `./resources/intl/messages.properties`:\r\n\r\n```\r\n./src/components/App/index.js.title = Intl Example\r\n```\r\n\r\nExample localized messages `./resources/intl/messages_fi.properties`:\r\n\r\n```\r\n./src/components/App/index.js.title = Intl Esimerkki\r\n```\r\n\r\n## List of Preconfigured Loaders\r\n\r\n| Extension         | Loader                             |\r\n| ----------------- | ---------------------------------- |\r\n| **JS**            |                                    |\r\n| `.js`             | (ng-annotate-loader,) babel-loader |\r\n| **HTML**          |                                    |\r\n| `.html`           | raw-loader                         |\r\n| `.hbs`            | handlebars-template-loader         |\r\n| **Styles**        |                                    |\r\n| `.css`            | css-loader                         |\r\n| `.scss`           | sass-loader                        |\r\n| `.less`           | less-loader                        |\r\n| **Fonts & Media** |                                    |\r\n| `.woff`, `.woff2` | url-loader                         |\r\n| `.ttf`            | url-loader                         |\r\n| `.eot`            | file-loader                        |\r\n| `.svg`            | url-loader                         |\r\n| `.png`            | url-loader                         |\r\n| `.gif`            | file-loader                        |\r\n| `.jpg`            | file-loader                        |\r\n| **Other**         |                                    |\r\n| `.txt`            | raw-loader                         |\r\n| `.properties`     | properties-loader                  |\r\n\r\n### Livereload\r\n\r\nStart build process, watch changes and refresh browser automatically on changes.\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\nIf you wish to serve files from different directory while developing (i.e. server content base is elsewhere):\r\n\r\n```sh\r\nnpm run dev -- --output-path /some/other/content/base/dist\r\n```\r\n\r\n### Dev Server\r\n\r\nUse this for [Hot Module Replacement with React](#hot-module-replacement-with-react) or as an alternative to Livereload.\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n### Single Entry (`src/index.js`)\r\n\r\n```\r\nmy-app/\r\n  dist/                                     // generated\r\n    bundle.aa4915533a5b5f53c072.css\r\n    bundle.aa4915533a5b5f53c072.css.map\r\n    bundle.aa4915533a5b5f53c072.js\r\n    bundle.aa4915533a5b5f53c072.js.map\r\n  src/\r\n    index.js                                // entry point\r\n    other.js\r\n  package.json\r\n```\r\n\r\n```html\r\n<link href=\"/dist/bundle.aa4915533a5b5f53c072.css\" rel=\"stylesheet\">\r\n<script src=\"/dist/bundle.aa4915533a5b5f53c072.js\"></script>\r\n```\r\n\r\n### Multiple Entries (`src/entries`)\r\n\r\n```\r\nmy-app/\r\n  dist/                                     // generated\r\n    commons.ee0ce0879c8b5aaefae4.css\r\n    commons.ee0ce0879c8b5aaefae4.css.map\r\n    commons.ee0ce0879c8b5aaefae4.js\r\n    commons.ee0ce0879c8b5aaefae4.js.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.css\r\n    entries/pageA/bundle.8036db3af1be1831e295.css.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.js\r\n    entries/pageA/bundle.8036db3af1be1831e295.js.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.css\r\n    entries/pageB/bundle.19596c286128bce14cf9.css.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.js\r\n    entries/pageB/bundle.19596c286128bce14cf9.js.map\r\n  src/\r\n    entries/                                // entry points e.g. for each page\r\n      pageA.js\r\n      pageB.js\r\n    other.js\r\n  package.json\r\n```\r\n\r\nYou must load commons bundle before the entry point. `pageA.html`:\r\n\r\n```html\r\n<link href=\"/dist/commons.ee0ce0879c8b5aaefae4.css\" rel=\"stylesheet\">\r\n<link href=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.css\" rel=\"stylesheet\">\r\n<script src=\"/dist/commons.ee0ce0879c8b5aaefae4.js\"></script>\r\n<script src=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.js\"></script>\r\n```\r\n\r\n## Examples\r\n\r\n### React\r\n\r\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/), [**React-Bootstrap**](http://react-bootstrap.github.io/), Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n### React (multiple entries)\r\n\r\n![one] Install React example project for multi-portlet use, with Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react-multiple-entries\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n### Angular\r\n\r\n![one] Install example project with **AngularUI Router** and **Bootstrap**:\r\n\r\n```sh\r\nnpx frontend-app init angular\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n## Cookbook\r\n\r\n### Custom Webpack Configuration\r\n\r\nIf you have `webpack.config.js` in root directory, it will be merged into the built-in configuration using [webpack-merge](https://www.npmjs.com/package/webpack-merge) in `smartStrategy` mode.\r\n\r\n```js\r\nconst { join } = require(\"path\");\r\n\r\nmodule.exports = {\r\n  module: {\r\n    rules: [\r\n      {\r\n        test: /\\.js$/,\r\n        loader: \"babel-loader\",\r\n        include: join(process.cwd(), \"node_modules/my-lib\")\r\n      }\r\n    ]\r\n  },\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  }\r\n};\r\n```\r\n\r\n### Hot Module Replacement with React\r\n\r\nNo need for additional dependencies. frontend-app has react-hot-loader as its dependency.\r\n\r\n![one] Modify `src/index.js`:\r\n\r\n```js\r\nimport { render } from \"react-dom\";\r\nimport App from \"./App\";\r\n\r\nrender(<App />, document.getElementById(\"root\"));\r\n```\r\n\r\n![two] Set [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in `webpack.config.js`:\r\n\r\n```js\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  }\r\n};\r\n```\r\n\r\n![three] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![four] Go to `http://localhost:8080`.\r\n\r\n### [History API Fallback](https://webpack.github.io/docs/webpack-dev-server.html#the-historyapifallback-option) with [HTML Webpack Plugin](https://github.com/ampedandwired/html-webpack-plugin)\r\n\r\nSuppose there is no backend or it's on another machine, and you just need to test some frontend code with Webpack Dev Server.\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  },\r\n  devServer: {\r\n    // Webpack Dev Server needs generated index.html in /dist directory for historyApiFallback to work.\r\n    historyApiFallback: { index: \"/dist/\" }\r\n  },\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      title: \"My App\"\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n### CKEditor from `/libs/ckeditor`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      scripts: [\"/libs/ckeditor/ckeditor.js\"],\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/libs/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### CKEditor from `node_modules`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template ckeditor\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/node_modules/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\nimport \"ckeditor\";\r\n\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### Font Awesome\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev font-awesome font-awesome-webpack@0.0.5-beta.2\r\n```\r\n\r\n![two] Usage example:\r\n\r\n```js\r\nimport \"font-awesome-webpack\";\r\n```\r\n\r\n```html\r\n<span class=\"fa fa-camera-retro\"></span>\r\n```\r\n\r\n### Different `output.publicPath` in production\r\n\r\n`process.env.NODE_ENV` is set correctly. You may use `NODE_ENV`, and for example `process.env.npm_lifecycle_event` to customize your configuration. `webpack.config.js`:\r\n\r\n```js\r\nconst production = process.env.NODE_ENV === \"production\";\r\n// process.env.npm_lifecycle_event => \"build\" | \"dev\" | \"dev-server\"\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: production ? \"/somepath/dist/\" : \"/dist/\"\r\n  }\r\n};\r\n```\r\n\r\n### Maven\r\n\r\n![one] Install in `webapp` directory:\r\n\r\n```sh\r\ncd .../src/main/webapp\r\nnpm init\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![two] Add build step to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n    <groupId>com.github.eirslett</groupId>\r\n    <artifactId>frontend-maven-plugin</artifactId>\r\n    <version>1.0</version>\r\n    <executions>\r\n        <execution>\r\n            <id>::install node and npm::</id>\r\n            <goals>\r\n                <goal>install-node-and-npm</goal>\r\n            </goals>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm install::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>update</arguments>\r\n            </configuration>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm run build::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>run build</arguments>\r\n            </configuration>\r\n        </execution>\r\n    </executions>\r\n    <configuration>\r\n        <nodeVersion>v6.5.0</nodeVersion>\r\n        <npmVersion>3.10.6</npmVersion>\r\n        <workingDirectory>src/main/webapp</workingDirectory>\r\n    </configuration>\r\n</plugin>\r\n```\r\n\r\n![three] Add exclude rules to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n\t<groupId>org.apache.maven.plugins</groupId>\r\n\t<artifactId>maven-war-plugin</artifactId>\r\n\t<configuration>\r\n\t\t<warSourceExcludes>src/,node/,node_modules/,package.json</warSourceExcludes>\r\n\t\t<webResources>\r\n\t\t\t<resource>\r\n\t\t\t\t<directory>src/main/webapp</directory>\r\n\t\t\t\t<filtering>false</filtering>\r\n\t\t\t\t<excludes>\r\n\t\t\t\t\t<exclude>src/**</exclude>\r\n\t\t\t\t\t<exclude>node/**</exclude>\r\n\t\t\t\t\t<exclude>node_modules/**</exclude>\r\n\t\t\t\t\t<exclude>package.json</exclude>\r\n\t\t\t\t</excludes>\r\n\t\t\t</resource>\r\n\t\t</webResources>\r\n\t</configuration>\r\n</plugin>\r\n```\r\n\r\n### `.gitignore`\r\n\r\n```\r\n/dist/\r\n/node_modules/\r\n```\r\n\r\n[one]: https://twemoji.maxcdn.com/16x16/31-20e3.png \"One\"\r\n[two]: https://twemoji.maxcdn.com/16x16/32-20e3.png \"Two\"\r\n[three]: https://twemoji.maxcdn.com/16x16/33-20e3.png \"Three\"\r\n[four]: https://twemoji.maxcdn.com/16x16/34-20e3.png \"Four\"\r\n[five]: https://twemoji.maxcdn.com/16x16/35-20e3.png \"Five\"\r\n","readmeFilename":"README.md","gitHead":"9decdc0d1725dc50064e25cae8c5f3c2ca77b1d4","_id":"frontend-app@2.0.0-beta.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-zttwjNz2jKKPE8oRKhQHFZKBdCso7mj5ruOXnf02+iLVHHsnwQtxVijjeZpJyJQUG2Tgkn3IjZzAPfyqDH7nvw==","shasum":"2faf75915e77fc219676e4e7ec652f03bda7d7e2","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0-beta.0.tgz","fileCount":220,"unpackedSize":242075,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBzm7rXLxvE9FW7YUsY6hgKrqixuGEDCrb/sTbV7Go7xAiEA94Ot1jMvAW/P3vgIqWdL9tznkA+l0l+AE1A4Mu5ZmPA="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0-beta.0_1520880733228_0.9620390981329485"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"frontend-app","version":"2.0.0-beta.1","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"prebuild":"rimraf cjs es","prettier":"npm run prettier:write -- {.,{examples,src}/**}/*.{js,json} !./package-lock.json","build":"npm run inbuild --","inbuild":"library-util babel","lint":"npm run eslint && npm run prettier","eslint":"eslint {.,{examples,src}/**}/*.js --fix","precommit":"lint-staged","prepack":"npm run build","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{json,css,md}":["prettier --write","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.40","@babel/core":"^7.0.0-beta.40","@babel/plugin-proposal-class-properties":"^7.0.0-beta.40","@babel/plugin-transform-runtime":"^7.0.0-beta.40","@babel/polyfill":"^7.0.0-beta.40","@babel/preset-env":"^7.0.0-beta.40","@babel/preset-react":"^7.0.0-beta.40","@babel/preset-stage-0":"^7.0.0-beta.40","@babel/runtime":"^7.0.0-beta.40","autoprefixer":"^8.1.0","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","chokidar":"^2.0.2","copy-webpack-plugin":"^4.5.1","cross-env":"^5.1.4","cross-spawn":"^6.0.5","css-loader":"^0.28.10","file-loader":"^1.1.11","fs-extra":"^5.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.0.1","less-loader":"^4.1.0","lodash":"^4.17.5","mini-css-extract-plugin":"^0.2.0","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.7.2","on-build-webpack":"^0.1.0","postcss-loader":"^2.1.1","precss":"^3.1.2","properties":"^1.2.1","properties-loader":"^0.0.1","raw-loader":"^0.5.1","react-hot-loader":"^4.0.0","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.7","source-map-loader":"^0.2.3","style-loader":"^0.20.3","url-loader":"^1.0.1","webpack":"^4.1.1","webpack-cleanup-plugin":"^0.5.1","webpack-cli":"^2.0.11","webpack-dev-server":"^3.1.1","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.0-rc.2","webpack-merge":"^4.1.2","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^11.0.0"},"devDependencies":{"@babel/register":"^7.0.0-beta.40","library-util":"^0.1.6"},"main":"cjs","module":"es","files":["cjs","es","examples"],"readme":"# frontend-app\r\n\r\nStart using latest [ES syntax](https://babeljs.io/docs/learn-es2015/) and [features](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference), Livereload and Hot Module Replacement.\r\n\r\nThis includes [babel-polyfill](https://babeljs.io/docs/usage/polyfill/) and [whatwg-fetch](https://github.com/github/fetch) polyfill and transpiles code using [env](https://babeljs.io/docs/plugins/preset-env/) and [stage-0](http://babeljs.io/docs/plugins/preset-stage-0/) Babel presets, so you may use many new features of the language out-of-the-box.\r\n\r\n[JSX](https://facebook.github.io/react/docs/jsx-in-depth.html) and AngularJS dependency injection annotations ([babel-plugin-ng-annotate](https://www.npmjs.com/package/babel-plugin-ng-annotate), [ng-annotate](https://github.com/olov/ng-annotate)) are also supported.\r\n\r\n## Contents\r\n\r\n* [Getting Started](#getting-started)\r\n* [Commands](#commands)\r\n  * [init](#init)\r\n* [Scripts](#scripts)\r\n  * [build](#build)\r\n  * [dev](#dev)\r\n  * [dev-server](#dev-server)\r\n  * [build](#build)\r\n* [Options](#options)\r\n  * [type](#type)\r\n  * [port](#port)\r\n  * [devServer.port](#devserverport)\r\n  * [intl](#intl)\r\n  * [intl.locales](#intllocales)\r\n  * [polyfills](#polyfills)\r\n* [React Intl helper Components](#react-intl-helper-components)\r\n  * [Localize](#localize)\r\n* [List of Preconfigured Loaders](#list-of-preconfigured-loaders)\r\n* [Livereload](#livereload)\r\n  * [Livereload in Liferay](#livereload-in-liferay)\r\n* [Dev Server](#dev-server)\r\n  * [Options](#options-1)\r\n* [Single Entry](#single-entry--srcentryjs-)\r\n* [Multiple Entries](#multiple-entries--srcentries-)\r\n* [Examples](#examples)\r\n  * [React](#react)\r\n  * [React (multiple entries)](#react-multiple-entries)\r\n  * [Angular](#angular)\r\n* [Webpack Configuration](#webpack-configuration)\r\n* [Cookbook](#cookbook)\r\n  * [Hot Module Replacement with React](#hot-module-replacement-with-react)\r\n  * [History API Fallback with HTML Webpack Plugin](#history-api-fallback-with-html-webpack-plugin)\r\n  * [CKEditor from /libs/ckeditor](#ckeditor-from-libsckeditor)\r\n  * [CKEditor from node_modules](#ckeditor-from-node_modules)\r\n  * [Font Awesome](#font-awesome)\r\n  * [Different output.publicPath in production](#different-outputpublicpath-in-production)\r\n  * [Maven](#maven)\r\n  * [.gitignore](#gitignore)\r\n\r\n## Getting Started\r\n\r\n![one] Make sure you have at least Node.js v6 and npm v5.2 installed:\r\n\r\n```sh\r\nnode -v\r\nnpm -v\r\n```\r\n\r\n![two] Create `package.json` and install frontend-app:\r\n\r\n```sh\r\nmkdir my-app\r\ncd my-app\r\nnpm init -y\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![three] Install one of the [examples](#examples), have your app [entry point](#single-entry-srcentryjs)(s) in `src` directory and [`webpack.config.js`](#webpack-configuration) in place. Then build using:\r\n\r\n```sh\r\nnpm run build\r\n```\r\n\r\n## Commands\r\n\r\n##### init\r\n\r\nInitialize [example project](#examples).\r\n\r\n```sh\r\nnpx frontend-app init <example-name>\r\n```\r\n\r\n## Scripts\r\n\r\n##### build\r\n\r\nFiles are transpiled, bundled and minified to the `dist` directory and are ready to be served. Source maps are also generated.\r\n\r\nYou may pass additional arguments to [Webpack](https://webpack.github.io/docs/) using `--`. For example, don't show progress information:\r\n\r\n```\r\nnpm run build -- --progress false\r\n```\r\n\r\n##### dev\r\n\r\nBundle files to disk in watch mode (see [Livereload](#livereload)).\r\n\r\n##### dev-server\r\n\r\nBundle files in watch mode (see [Dev Server](#dev-server)).\r\n\r\n## Options\r\n\r\nYou may use `package.json` `config` field to set options. Example:\r\n\r\n```json\r\n{\r\n  \"name\": \"my-app\",\r\n  \"config\": {\r\n    \"frontendApp\": {\r\n      \"type\": \"react\",\r\n      \"port\": \"8080\",\r\n      \"devServer\": {\r\n        \"port\": \"8081\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n##### type\r\n\r\n* **`react`**: Adds JSX support.\r\n* **`angular`**: Adds ng-annotate support.\r\n* **`all`**: Support JSX and ng-annotate. `ng-strict-di` is not supported in livereload mode.\r\n* **`slim`** **(default)**: Just ES2015. No React or Angular specific transformations.\r\n* **`portlet`**: Sets [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in Spring MVC Liferay plugin project built with Maven. `publicPath` is determined by `artifactId` in `pom.xml`.\r\n\r\nMultiple values are also supported. `package.json` `config.frontendApp` property example:\r\n\r\n```json\r\n{\r\n  \"type\": [\"angular\", \"portlet\"]\r\n}\r\n```\r\n\r\n##### intl\r\n\r\nSet `\"intl\": \"true\"` to use [React Intl](https://github.com/yahoo/react-intl) helpers and default list of available locales.\r\n\r\n##### intl.locales\r\n\r\nAvailable locales for [Moment.js](http://momentjs.com/), React Intl and [Intl](https://www.npmjs.com/package/intl). **Default:** `[\"fi\", \"sv\", \"en\"]` (When `\"intl\": \"true\"`).\r\n\r\n##### polyfills\r\n\r\nIncluded polyfills. **Default:** `[\"babel-polyfill\", \"whatwg-fetch\"]`. Set `\"false\"` to not include any polyfills.\r\n\r\n## React Intl helper Components\r\n\r\n### `Localize`\r\n\r\n| prop             | Default value | Description                                                                           |\r\n| ---------------- | ------------- | ------------------------------------------------------------------------------------- |\r\n| `locale`         | `undefined`   | Application locale, if set.                                                           |\r\n| `defaultLocale`  | `'en-US'`     | Fallback value, if getting value from localStorage or detecting browser locale fails. |\r\n| `onChangeLocale` | `undefined`   | Callback function gets called with new value when locale changes.                     |\r\n\r\nExample `./src/components/App/index.js`:\r\n\r\n```js\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport Localize, { Selector } from \"frontend-app/es/react/intl\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport default () => (\r\n  <BrowserRouter>\r\n    <Localize locale=\"fi-FI\">\r\n      <h1>\r\n        <FormattedMessage id={`${module.id}.title`} />\r\n      </h1>\r\n      <Selector\r\n        locales={[\r\n          { locale: \"fi-FI\", children: \"Suomeksi\" },\r\n          { locale: \"en-US\", children: \"English\" }\r\n        ]}\r\n        style={{ marginRight: \".4em\" }}\r\n      />\r\n    </Localize>\r\n  </BrowserRouter>\r\n);\r\n```\r\n\r\nExample default messages `./resources/intl/messages.properties`:\r\n\r\n```\r\n./src/components/App/index.js.title = Intl Example\r\n```\r\n\r\nExample localized messages `./resources/intl/messages_fi.properties`:\r\n\r\n```\r\n./src/components/App/index.js.title = Intl Esimerkki\r\n```\r\n\r\n## List of Preconfigured Loaders\r\n\r\n| Extension         | Loader                             |\r\n| ----------------- | ---------------------------------- |\r\n| **JS**            |                                    |\r\n| `.js`             | (ng-annotate-loader,) babel-loader |\r\n| **HTML**          |                                    |\r\n| `.html`           | raw-loader                         |\r\n| `.hbs`            | handlebars-template-loader         |\r\n| **Styles**        |                                    |\r\n| `.css`            | css-loader                         |\r\n| `.scss`           | sass-loader                        |\r\n| `.less`           | less-loader                        |\r\n| **Fonts & Media** |                                    |\r\n| `.woff`, `.woff2` | url-loader                         |\r\n| `.ttf`            | url-loader                         |\r\n| `.eot`            | file-loader                        |\r\n| `.svg`            | url-loader                         |\r\n| `.png`            | url-loader                         |\r\n| `.gif`            | file-loader                        |\r\n| `.jpg`            | file-loader                        |\r\n| **Other**         |                                    |\r\n| `.txt`            | raw-loader                         |\r\n| `.properties`     | properties-loader                  |\r\n\r\n### Livereload\r\n\r\nStart build process, watch changes and refresh browser automatically on changes.\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\nIf you wish to serve files from different directory while developing (i.e. server content base is elsewhere):\r\n\r\n```sh\r\nnpm run dev -- --output-path /some/other/content/base/dist\r\n```\r\n\r\n### Dev Server\r\n\r\nUse this for [Hot Module Replacement with React](#hot-module-replacement-with-react) or as an alternative to Livereload.\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n### Single Entry (`src/index.js`)\r\n\r\n```\r\nmy-app/\r\n  dist/                                     // generated\r\n    bundle.aa4915533a5b5f53c072.css\r\n    bundle.aa4915533a5b5f53c072.css.map\r\n    bundle.aa4915533a5b5f53c072.js\r\n    bundle.aa4915533a5b5f53c072.js.map\r\n  src/\r\n    index.js                                // entry point\r\n    other.js\r\n  package.json\r\n```\r\n\r\n```html\r\n<link href=\"/dist/bundle.aa4915533a5b5f53c072.css\" rel=\"stylesheet\">\r\n<script src=\"/dist/bundle.aa4915533a5b5f53c072.js\"></script>\r\n```\r\n\r\n### Multiple Entries (`src/entries`)\r\n\r\n```\r\nmy-app/\r\n  dist/                                     // generated\r\n    commons.ee0ce0879c8b5aaefae4.css\r\n    commons.ee0ce0879c8b5aaefae4.css.map\r\n    commons.ee0ce0879c8b5aaefae4.js\r\n    commons.ee0ce0879c8b5aaefae4.js.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.css\r\n    entries/pageA/bundle.8036db3af1be1831e295.css.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.js\r\n    entries/pageA/bundle.8036db3af1be1831e295.js.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.css\r\n    entries/pageB/bundle.19596c286128bce14cf9.css.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.js\r\n    entries/pageB/bundle.19596c286128bce14cf9.js.map\r\n  src/\r\n    entries/                                // entry points e.g. for each page\r\n      pageA.js\r\n      pageB.js\r\n    other.js\r\n  package.json\r\n```\r\n\r\nYou must load commons bundle before the entry point. `pageA.html`:\r\n\r\n```html\r\n<link href=\"/dist/commons.ee0ce0879c8b5aaefae4.css\" rel=\"stylesheet\">\r\n<link href=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.css\" rel=\"stylesheet\">\r\n<script src=\"/dist/commons.ee0ce0879c8b5aaefae4.js\"></script>\r\n<script src=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.js\"></script>\r\n```\r\n\r\n## Examples\r\n\r\n### React\r\n\r\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/), [**React-Bootstrap**](http://react-bootstrap.github.io/), Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n### React (multiple entries)\r\n\r\n![one] Install React example project for multi-portlet use, with Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react-multiple-entries\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n### Angular\r\n\r\n![one] Install example project with **AngularUI Router** and **Bootstrap**:\r\n\r\n```sh\r\nnpx frontend-app init angular\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n## Webpack Configuration\r\n\r\nProvide the built-in Webpack configuration. `webpack.config.js`:\r\n\r\n```js\r\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default;\r\n```\r\n\r\nOptionally merge own configuration. It will be merged into the built-in configuration using [webpack-merge](https://www.npmjs.com/package/webpack-merge) in `smartStrategy` mode:\r\n\r\n```js\r\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default.merge({\r\n  module: {\r\n    rules: [\r\n      {\r\n        test: /\\.js$/,\r\n        loader: \"babel-loader\",\r\n        include: join(process.cwd(), \"node_modules/my-lib\")\r\n      }\r\n    ]\r\n  },\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  }\r\n});\r\n```\r\n\r\nAnd/or customize the final configuration:\r\n\r\n```js\r\nmodule.exports = require(\"frontend-app/cjs/webpack/config\")\r\n  .default.merge({\r\n    output: {\r\n      publicPath: \"/dist/\"\r\n    }\r\n  })\r\n  .customize(config => {\r\n    // Edit entries.\r\n    config.entry[2] = join(config.entry[2], \"client\");\r\n    return config;\r\n  });\r\n```\r\n\r\n## Cookbook\r\n\r\n### Hot Module Replacement with React\r\n\r\nNo need for additional dependencies. frontend-app has react-hot-loader as its dependency.\r\n\r\n![one] Modify `src/index.js`:\r\n\r\n```js\r\nimport { render } from \"react-dom\";\r\nimport App from \"./App\";\r\n\r\nrender(<App />, document.getElementById(\"root\"));\r\n```\r\n\r\n![two] Set [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in `webpack.config.js`:\r\n\r\n```js\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  }\r\n};\r\n```\r\n\r\n![three] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![four] Go to `http://localhost:8080`.\r\n\r\n### [History API Fallback](https://webpack.github.io/docs/webpack-dev-server.html#the-historyapifallback-option) with [HTML Webpack Plugin](https://github.com/ampedandwired/html-webpack-plugin)\r\n\r\nSuppose there is no backend or it's on another machine, and you just need to test some frontend code with Webpack Dev Server.\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  },\r\n  devServer: {\r\n    // Webpack Dev Server needs generated index.html in /dist directory for historyApiFallback to work.\r\n    historyApiFallback: { index: \"/dist/\" }\r\n  },\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      title: \"My App\"\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n### CKEditor from `/libs/ckeditor`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      scripts: [\"/libs/ckeditor/ckeditor.js\"],\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/libs/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### CKEditor from `node_modules`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template ckeditor\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/node_modules/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\nimport \"ckeditor\";\r\n\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### Font Awesome\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev font-awesome font-awesome-webpack@0.0.5-beta.2\r\n```\r\n\r\n![two] Usage example:\r\n\r\n```js\r\nimport \"font-awesome-webpack\";\r\n```\r\n\r\n```html\r\n<span class=\"fa fa-camera-retro\"></span>\r\n```\r\n\r\n### Different `output.publicPath` in production\r\n\r\n`process.env.NODE_ENV` is set correctly. You may use `NODE_ENV`, and for example `process.env.npm_lifecycle_event` to customize your configuration. `webpack.config.js`:\r\n\r\n```js\r\nconst production = process.env.NODE_ENV === \"production\";\r\n// process.env.npm_lifecycle_event => \"build\" | \"dev\" | \"dev-server\"\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: production ? \"/somepath/dist/\" : \"/dist/\"\r\n  }\r\n};\r\n```\r\n\r\n### Maven\r\n\r\n![one] Install in `webapp` directory:\r\n\r\n```sh\r\ncd .../src/main/webapp\r\nnpm init\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![two] Add build step to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n    <groupId>com.github.eirslett</groupId>\r\n    <artifactId>frontend-maven-plugin</artifactId>\r\n    <version>1.0</version>\r\n    <executions>\r\n        <execution>\r\n            <id>::install node and npm::</id>\r\n            <goals>\r\n                <goal>install-node-and-npm</goal>\r\n            </goals>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm install::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>update</arguments>\r\n            </configuration>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm run build::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>run build</arguments>\r\n            </configuration>\r\n        </execution>\r\n    </executions>\r\n    <configuration>\r\n        <nodeVersion>v6.5.0</nodeVersion>\r\n        <npmVersion>3.10.6</npmVersion>\r\n        <workingDirectory>src/main/webapp</workingDirectory>\r\n    </configuration>\r\n</plugin>\r\n```\r\n\r\n![three] Add exclude rules to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n\t<groupId>org.apache.maven.plugins</groupId>\r\n\t<artifactId>maven-war-plugin</artifactId>\r\n\t<configuration>\r\n\t\t<warSourceExcludes>src/,node/,node_modules/,package.json</warSourceExcludes>\r\n\t\t<webResources>\r\n\t\t\t<resource>\r\n\t\t\t\t<directory>src/main/webapp</directory>\r\n\t\t\t\t<filtering>false</filtering>\r\n\t\t\t\t<excludes>\r\n\t\t\t\t\t<exclude>src/**</exclude>\r\n\t\t\t\t\t<exclude>node/**</exclude>\r\n\t\t\t\t\t<exclude>node_modules/**</exclude>\r\n\t\t\t\t\t<exclude>package.json</exclude>\r\n\t\t\t\t</excludes>\r\n\t\t\t</resource>\r\n\t\t</webResources>\r\n\t</configuration>\r\n</plugin>\r\n```\r\n\r\n### `.gitignore`\r\n\r\n```\r\n/dist/\r\n/node_modules/\r\n```\r\n\r\n[one]: https://twemoji.maxcdn.com/16x16/31-20e3.png \"One\"\r\n[two]: https://twemoji.maxcdn.com/16x16/32-20e3.png \"Two\"\r\n[three]: https://twemoji.maxcdn.com/16x16/33-20e3.png \"Three\"\r\n[four]: https://twemoji.maxcdn.com/16x16/34-20e3.png \"Four\"\r\n[five]: https://twemoji.maxcdn.com/16x16/35-20e3.png \"Five\"\r\n","readmeFilename":"README.md","gitHead":"5b7badeaa8665235ef42b06af21bba4ebb9bb746","_id":"frontend-app@2.0.0-beta.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-kcixKz8sO0SeNPgXs3TSYWFBbFs/iIdvtSIvp/y8FjJ94xRgGvbZ3k5Ija5ss3hUg41xr3wZ4RcQCXmAZLho2g==","shasum":"cf0cb78fadd38cfad742eaa901c57393b9b2ccb2","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0-beta.1.tgz","fileCount":216,"unpackedSize":242822,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHwkSt4TED2N+2RsISkhuaGNrgdYp1ndJALWOpjiuQzsAiEApj1z1xxUfIwM+zSdNAJGkd+1H53Wkbgm9/+nWN3MuW4="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0-beta.1_1520955021483_0.30867729245518727"},"_hasShrinkwrap":false},"2.0.0-beta.2":{"name":"frontend-app","version":"2.0.0-beta.2","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"prebuild":"rimraf cjs es","prettier":"npm run prettier:write -- {.,{examples,src}/**}/*.{js,json} !./package-lock.json","build":"npm run inbuild --","inbuild":"library-util babel","lint":"npm run eslint && npm run prettier","eslint":"eslint {.,{examples,src}/**}/*.js --fix","precommit":"lint-staged","prepack":"npm run build","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{json,css,md}":["prettier --write","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.40","@babel/core":"^7.0.0-beta.40","@babel/plugin-proposal-class-properties":"^7.0.0-beta.40","@babel/plugin-transform-runtime":"^7.0.0-beta.40","@babel/polyfill":"^7.0.0-beta.40","@babel/preset-env":"^7.0.0-beta.40","@babel/preset-react":"^7.0.0-beta.40","@babel/preset-stage-0":"^7.0.0-beta.40","@babel/runtime":"^7.0.0-beta.40","@visma/react-intl-helpers":"^0.1.0","autoprefixer":"^8.1.0","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","copy-webpack-plugin":"^4.5.1","cross-env":"^5.1.4","cross-spawn":"^6.0.5","css-loader":"^0.28.10","file-loader":"^1.1.11","fs-extra":"^5.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.0.1","less-loader":"^4.1.0","lodash":"^4.17.5","mini-css-extract-plugin":"^0.2.0","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.7.2","postcss-loader":"^2.1.1","precss":"^3.1.2","raw-loader":"^0.5.1","react-hot-loader":"^4.0.0","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.7","source-map-loader":"^0.2.3","style-loader":"^0.20.3","url-loader":"^1.0.1","webpack":"^4.1.1","webpack-cleanup-plugin":"^0.5.1","webpack-cli":"^2.0.11","webpack-dev-server":"^3.1.1","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.0-rc.2","webpack-merge":"^4.1.2","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^11.0.0"},"devDependencies":{"@babel/register":"^7.0.0-beta.40","library-util":"^0.1.6"},"main":"cjs","module":"es","files":["cjs","es","examples"],"gitHead":"b7fbbebb0be8bc5159b0c9f6bae2816af685b62a","_id":"frontend-app@2.0.0-beta.2","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-Bo2VnWg7XFpx2tW4M5nEV4yMG6r84wPSYUovNIeVxSfmYMJoZe1AuPRZXOx76jgO6nuPVXwNX2eXJMbaZXZwhw==","shasum":"3a1e889ed14a68b9ab3cfd9cd14642ded8c4c63f","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0-beta.2.tgz","fileCount":212,"unpackedSize":221423,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIFoxgJT+xjXC/0hLgY0wmQ7z1fmklaxJlBetBfeBbawIga6LOURAh+7+ImJC6BCk+9OVNwQ1mqNCTV8zupJJ0eVY="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0-beta.2_1521369436181_0.21189973498282244"},"_hasShrinkwrap":false},"1.2.0-beta.5":{"name":"frontend-app","version":"1.2.0-beta.5","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"prebuild":"rimraf cjs es","prettier":"npm run prettier:write -- {.,{examples,src}/**}/*.{js,json} !./package-lock.json","build":"npm run inbuild --","inbuild":"library-util babel","lint":"npm run eslint && npm run prettier","eslint":"eslint {.,{examples,src}/**}/*.js --fix","precommit":"lint-staged","prepack":"npm run build","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{json,css,md}":["prettier --write","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.37","@babel/core":"^7.0.0-beta.37","@babel/plugin-proposal-class-properties":"^7.0.0-beta.37","@babel/plugin-transform-runtime":"^7.0.0-beta.37","@babel/polyfill":"^7.0.0-beta.37","@babel/preset-env":"^7.0.0-beta.37","@babel/preset-react":"^7.0.0-beta.37","@babel/preset-stage-0":"^7.0.0-beta.37","@babel/runtime":"^7.0.0-beta.37","@visma/react-intl-helpers":"^0.1.0","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","copy-webpack-plugin":"^4.2.0","cross-env":"^5.1.1","cross-spawn":"^5.1.0","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","fs-extra":"^5.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.3","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.6.1","raw-loader":"^1.0.0-beta.0","react-hot-loader":"^3.1.2","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.6","source-map-loader":"^0.2.3","style-loader":"^0.19.0","url-loader":"^0.6.2","webpack":"^3.8.1","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.10.0","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^10.0.3"},"devDependencies":{"@babel/register":"^7.0.0-beta.37","library-util":"^0.1.6"},"main":"cjs","module":"es","files":["cjs","es","examples"],"readme":"# frontend-app\r\n\r\nStart using latest [ES syntax](https://babeljs.io/docs/learn-es2015/) and [features](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference), `import`, `export`, `async`, `await` etc. and Livereload and Hot Module Replacement.\r\n\r\nThis includes [babel-polyfill](https://babeljs.io/docs/usage/polyfill/) and [whatwg-fetch](https://github.com/github/fetch) polyfill and transpiles code using [env](https://babeljs.io/docs/plugins/preset-env/) and [stage-0](http://babeljs.io/docs/plugins/preset-stage-0/) Babel presets, so you may use many new features of the language out-of-the-box.\r\n\r\n[JSX](https://facebook.github.io/react/docs/jsx-in-depth.html) and AngularJS dependency injection annotations ([babel-plugin-ng-annotate](https://www.npmjs.com/package/babel-plugin-ng-annotate), [ng-annotate](https://github.com/olov/ng-annotate)) are also supported.\r\n\r\n## Contents\r\n\r\n* [Getting Started](#getting-started)\r\n* [Commands](#commands)\r\n  * [init](#init)\r\n* [Scripts](#scripts)\r\n  * [bundle](#bundle)\r\n  * [dev](#dev)\r\n  * [dev-server](#dev-server)\r\n  * [build](#build)\r\n* [Options](#options)\r\n  * [type](#type)\r\n  * [port](#port)\r\n  * [devServer.port](#devserverport)\r\n  * [intl](#intl)\r\n  * [intl.locales](#intllocales)\r\n  * [polyfills](#polyfills)\r\n* [React Intl helper Components](#react-intl-helper-components)\r\n* [List of Preconfigured Loaders](#list-of-preconfigured-loaders)\r\n* [Livereload](#livereload)\r\n  * [Livereload in Liferay](#livereload-in-liferay)\r\n* [Dev Server](#dev-server)\r\n  * [Options](#options-1)\r\n* [Single Entry](#single-entry--srcentryjs-)\r\n* [Multiple Entries](#multiple-entries--srcentries-)\r\n* [Examples](#examples)\r\n  * [React](#react)\r\n  * [React (complete)](#react-complete)\r\n  * [React (multiple entries)](#react-multiple-entries)\r\n  * [Angular](#angular)\r\n* [Cookbook](#cookbook)\r\n  * [Custom Webpack Configuration](#custom-webpack-configuration)\r\n  * [Hot Module Replacement with React](#hot-module-replacement-with-react)\r\n  * [History API Fallback with HTML Webpack Plugin](#history-api-fallback-with-html-webpack-plugin)\r\n  * [CKEditor from /libs/ckeditor](#ckeditor-from-libsckeditor)\r\n  * [CKEditor from node_modules](#ckeditor-from-node_modules)\r\n  * [Font Awesome](#font-awesome)\r\n  * [Different output.publicPath in production](#different-outputpublicpath-in-production)\r\n  * [Maven](#maven)\r\n  * [.gitignore](#gitignore)\r\n\r\n## Getting Started\r\n\r\n![one] Make sure you have at least Node.js v6 and npm v5.2 installed:\r\n\r\n```sh\r\nnode -v\r\nnpm -v\r\n```\r\n\r\n![two] Create `package.json` and install frontend-app:\r\n\r\n```sh\r\nmkdir my-app\r\ncd my-app\r\nnpm init -y\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![three] Install one of the [examples](#examples) or have your app [entry point](#single-entry-srcentryjs)(s) in `src` directory and then:\r\n\r\n```sh\r\nnpm run bundle\r\n```\r\n\r\n## Commands\r\n\r\n##### init\r\n\r\nInitialize [example project](#examples).\r\n\r\n```sh\r\nnpx frontend-app init <example-name>\r\n```\r\n\r\n## Scripts\r\n\r\n##### bundle\r\n\r\nFiles are transpiled, bundled and minified to the build directory and are ready to be served. Source maps are also generated.\r\n\r\nYou may pass additional arguments to [Webpack](https://webpack.github.io/docs/) using `--`. For example, don't show progress information:\r\n\r\n```\r\nnpm run bundle -- --progress false\r\n```\r\n\r\n##### dev\r\n\r\nBundle files to disk in watch mode (see [Livereload](#livereload)).\r\n\r\n##### dev-server\r\n\r\nBundle files in watch mode (see [Dev Server](#dev-server)).\r\n\r\n## Options\r\n\r\nYou may use `package.json` `config` field to set options. Example:\r\n\r\n```json\r\n{\r\n  \"name\": \"my-app\",\r\n  \"config\": {\r\n    \"frontendApp\": {\r\n      \"type\": \"react\",\r\n      \"port\": \"8080\",\r\n      \"devServer\": {\r\n        \"port\": \"8081\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n##### type\r\n\r\n* **`react`**: Adds JSX support.\r\n* **`angular`**: Adds ng-annotate support.\r\n* **`all`**: Support JSX and ng-annotate. `ng-strict-di` is not supported in livereload mode.\r\n* **`slim`** **(default)**: Just ES2015. No React or Angular specific transformations.\r\n* **`portlet`**: Sets [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in Spring MVC Liferay plugin project built with Maven. `publicPath` is determined by `artifactId` in `pom.xml`.\r\n\r\nMultiple values are also supported. `package.json` `config.frontendApp` property example:\r\n\r\n```json\r\n{\r\n  \"type\": [\"angular\", \"portlet\"]\r\n}\r\n```\r\n\r\n##### port\r\n\r\nYour backend server port on localhost. Webpack Dev Server is configured to use this value to proxy all non-build related requests to your actual backend server. **Default: 8080**.\r\n\r\n##### devServer.port\r\n\r\nPort for Livereload/HMR enabled version of your app. **Default: port + 1**.\r\n\r\n##### intl\r\n\r\nSet `\"intl\": \"true\"` to use default list of available locales.\r\n\r\n##### intl.locales\r\n\r\nAvailable locales for [Moment.js](http://momentjs.com/), React Intl and [Intl](https://www.npmjs.com/package/intl). **Default:** `[\"fi\", \"sv\", \"en\"]` (When `\"intl\": \"true\"`).\r\n\r\n##### polyfills\r\n\r\nIncluded polyfills. **Default:** `[\"babel-polyfill\", \"whatwg-fetch\"]`. Set `\"false\"` to not include any polyfills.\r\n\r\n## React Intl helper Components\r\n\r\nMoved to [@visma/react-intl-helpers](https://www.npmjs.com/package/@visma/react-intl-helpers).\r\n\r\n## List of Preconfigured Loaders\r\n\r\n| Extension         | Loader                                                                                          |\r\n| ----------------- | ----------------------------------------------------------------------------------------------- |\r\n| **JS**            |                                                                                                 |\r\n| `.js`             | (ng-annotate-loader,) babel-loader                                                              |\r\n| **HTML**          |                                                                                                 |\r\n| `.html`           | raw-loader                                                                                      |\r\n| `.hbs`            | handlebars-template-loader                                                                      |\r\n| **Styles**        |                                                                                                 |\r\n| `.css`            | css-loader                                                                                      |\r\n| `.scss`           | sass-loader                                                                                     |\r\n| `.less`           | less-loader                                                                                     |\r\n| **Fonts & Media** |                                                                                                 |\r\n| `.woff`, `.woff2` | url-loader                                                                                      |\r\n| `.ttf`            | url-loader                                                                                      |\r\n| `.eot`            | file-loader                                                                                     |\r\n| `.svg`            | url-loader                                                                                      |\r\n| `.png`            | url-loader                                                                                      |\r\n| `.gif`            | file-loader                                                                                     |\r\n| `.jpg`            | file-loader                                                                                     |\r\n| **Other**         |                                                                                                 |\r\n| `.txt`            | raw-loader                                                                                      |\r\n| `.properties`     | [@visma/react-intl-helpers/cjs/loader](https://www.npmjs.com/package/@visma/react-intl-helpers) |\r\n\r\n### Livereload\r\n\r\nStart build process, watch changes and refresh browser automatically on changes.\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\nIf you wish to serve files from different directory while developing (i.e. server content base is elsewhere):\r\n\r\n```sh\r\nnpm run dev -- --output-path /some/other/content/base/build\r\n```\r\n\r\n#### Livereload in Liferay\r\n\r\nReplace `<liferay-path>` with the path to the Liferay installation directory, e.g. `/opt/liferay`. In that directory there should be `tomcat` directory (leave that out of the path).\r\n\r\n```sh\r\nnpm run dev --liferayPath=<liferay-path>\r\n```\r\n\r\n### Dev Server\r\n\r\nUse this for [Hot Module Replacement with React](#hot-module-replacement-with-react) or as an alternative to Livereload.\r\n\r\nHave your backend server running. Then start frontend build with Webpack Dev Server:\r\n\r\n```\r\nnpm run dev-server\r\n```\r\n\r\nGo to `http://localhost:<devServer.port>`. `<devServer.port>` defaults to `8081`.\r\n\r\n##### Options\r\n\r\n* **`port`** (optional): Your backend server port on localhost. Webpack Dev Server is configured to use this value to proxy all non-build related requests to your actual backend server. **Default: 8080**.\r\n* **`devServer.port`** (optional): Port for Livereload/HMR enabled version of your app. **Default: port + 1**.\r\n\r\n```json\r\n{\r\n  \"name\": \"my-app\",\r\n  \"config\": {\r\n    \"frontendApp\": {\r\n      \"port\": \"8080\",\r\n      \"devServer\": {\r\n        \"port\": \"8081\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Single Entry (`src/entry.js`)\r\n\r\n```\r\nmy-app/\r\n  build/                                    // generated\r\n    bundle.aa4915533a5b5f53c072.css\r\n    bundle.aa4915533a5b5f53c072.css.map\r\n    bundle.aa4915533a5b5f53c072.js\r\n    bundle.aa4915533a5b5f53c072.js.map\r\n  src/\r\n    entry.js                                // entry point\r\n    other.js\r\n  package.json\r\n```\r\n\r\n```html\r\n<link href=\"/build/bundle.css\" rel=\"stylesheet\">\r\n<script src=\"/build/bundle.js\"></script>\r\n```\r\n\r\n### Multiple Entries (`src/entries`)\r\n\r\n```\r\nmy-app/\r\n  build/                                    // generated\r\n    commons.ee0ce0879c8b5aaefae4.css\r\n    commons.ee0ce0879c8b5aaefae4.css.map\r\n    commons.ee0ce0879c8b5aaefae4.js\r\n    commons.ee0ce0879c8b5aaefae4.js.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.css\r\n    entries/pageA/bundle.8036db3af1be1831e295.css.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.js\r\n    entries/pageA/bundle.8036db3af1be1831e295.js.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.css\r\n    entries/pageB/bundle.19596c286128bce14cf9.css.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.js\r\n    entries/pageB/bundle.19596c286128bce14cf9.js.map\r\n  src/\r\n    entries/                                // entry points e.g. for each page\r\n      pageA.js\r\n      pageB.js\r\n    other.js\r\n  package.json\r\n```\r\n\r\nYou must load commons bundle before the entry point. `pageA.html`:\r\n\r\n```html\r\n<link href=\"/build/commons.css\" rel=\"stylesheet\">\r\n<link href=\"/build/pageA.css\" rel=\"stylesheet\">\r\n<script src=\"/build/commons.js\"></script>\r\n<script src=\"/build/pageA.js\"></script>\r\n```\r\n\r\n## Examples\r\n\r\n### React\r\n\r\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/) and [**React-Bootstrap**](http://react-bootstrap.github.io/):\r\n\r\n```sh\r\nnpx frontend-app init react\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n### React (complete)\r\n\r\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/), [**React-Bootstrap**](http://react-bootstrap.github.io/), [**Bootstrap 3 custom build**](https://www.npmjs.com/package/bootstrap-loader), [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react-complete\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n### React (multiple entries)\r\n\r\n![one] Install React example project for multi-portlet use, with [**Bootstrap 3 custom build**](https://www.npmjs.com/package/bootstrap-loader), [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react-multiple-entries\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n### Angular\r\n\r\n![one] Install example project with **AngularUI Router** and **Bootstrap**:\r\n\r\n```sh\r\nnpx frontend-app init angular\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n## Cookbook\r\n\r\n### Custom Webpack Configuration\r\n\r\nIf you have `webpack.config.js` in root directory, it will be merged into the built-in configuration using [webpack-merge](https://www.npmjs.com/package/webpack-merge) in `smartStrategy { 'devServer.proxy': 'replace' }` mode.\r\n\r\n```js\r\nconst { join } = require(\"path\");\r\n\r\nmodule.exports = {\r\n  module: {\r\n    rules: [\r\n      {\r\n        test: /\\.js$/,\r\n        loader: \"babel-loader\",\r\n        include: join(process.cwd(), \"node_modules/my-lib\")\r\n      }\r\n    ]\r\n  },\r\n  output: {\r\n    publicPath: \"/build/\"\r\n  }\r\n};\r\n```\r\n\r\n### Hot Module Replacement with React\r\n\r\nNo need for additional dependecies. frontend-app has react-hot-loader as its dependency.\r\n\r\n![one] Modify `src/entry.js`:\r\n\r\n```js\r\nimport { render } from \"react-dom\";\r\nimport { AppContainer } from \"react-hot-loader\";\r\nimport App from \"./App\";\r\n\r\nconst root = document.getElementById(\"root\");\r\n\r\nfunction renderer() {\r\n  render(\r\n    <AppContainer>\r\n      <App />\r\n    </AppContainer>,\r\n    root\r\n  );\r\n}\r\n\r\nif (process.env.npm_lifecycle_event === \"dev-server\") {\r\n  renderer();\r\n  module.hot.accept(\"./App\", renderer);\r\n} else {\r\n  render(<App />, root);\r\n}\r\n```\r\n\r\n![two] Set [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in `webpack.config.js`:\r\n\r\n```js\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/build/\"\r\n  }\r\n};\r\n```\r\n\r\n![three] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![four] Go to `http://localhost:<devServer.port>`. `<devServer.port>` defaults to `8081`.\r\n\r\n### [History API Fallback](https://webpack.github.io/docs/webpack-dev-server.html#the-historyapifallback-option) with [HTML Webpack Plugin](https://github.com/ampedandwired/html-webpack-plugin)\r\n\r\nSuppose there is no backend or it's on another machine, and you just need to test some frontend code with Webpack Dev Server.\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/build/\"\r\n  },\r\n  devServer: {\r\n    // Disable frontend-app built-in proxy options (optionally add own proxy options here).\r\n    proxy: {},\r\n    // Webpack Dev Server needs index.html in /build directory for historyApiFallback to work.\r\n    historyApiFallback: { index: \"/build/\" }\r\n  },\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      title: \"My App\",\r\n      filename:\r\n        process.env.npm_lifecycle_event === \"dev-server\"\r\n          ? // Webpack Dev Server needs index.html in /build directory for historyApiFallback to work.\r\n            \"index.html\"\r\n          : // Otherwise generate index.html in project root.\r\n            \"../index.html\"\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n### CKEditor from `/libs/ckeditor`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      scripts: [\"/libs/ckeditor/ckeditor.js\"],\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/libs/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### CKEditor from `node_modules`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template ckeditor\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/node_modules/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\nimport \"ckeditor\";\r\n\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### Font Awesome\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev font-awesome font-awesome-webpack@0.0.5-beta.2\r\n```\r\n\r\n![two] Usage example:\r\n\r\n```js\r\nimport \"font-awesome-webpack\";\r\n```\r\n\r\n```html\r\n<span class=\"fa fa-camera-retro\"></span>\r\n```\r\n\r\n### Different `output.publicPath` in production\r\n\r\n`process.env.NODE_ENV` is set correctly. You may use it, and for example `process.env.npm_lifecycle_event` to customize your configuration. `webpack.config.js`:\r\n\r\n```js\r\nconst production = process.env.NODE_ENV === \"production\";\r\n// process.env.npm_lifecycle_event => \"bundle\" | \"dev\" | \"dev-server\"\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: production ? \"/somepath/build/\" : \"/build/\"\r\n  }\r\n};\r\n```\r\n\r\n### Maven\r\n\r\n![one] Install in `webapp` directory:\r\n\r\n```sh\r\ncd .../src/main/webapp\r\nnpm init\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![two] Add bundle step to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n    <groupId>com.github.eirslett</groupId>\r\n    <artifactId>frontend-maven-plugin</artifactId>\r\n    <version>1.0</version>\r\n    <executions>\r\n        <execution>\r\n            <id>::install node and npm::</id>\r\n            <goals>\r\n                <goal>install-node-and-npm</goal>\r\n            </goals>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm install::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>update</arguments>\r\n            </configuration>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm run bundle::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>run bundle</arguments>\r\n            </configuration>\r\n        </execution>\r\n    </executions>\r\n    <configuration>\r\n        <nodeVersion>v6.5.0</nodeVersion>\r\n        <npmVersion>3.10.6</npmVersion>\r\n        <workingDirectory>src/main/webapp</workingDirectory>\r\n    </configuration>\r\n</plugin>\r\n```\r\n\r\n![three] Add exclude rules to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n\t<groupId>org.apache.maven.plugins</groupId>\r\n\t<artifactId>maven-war-plugin</artifactId>\r\n\t<configuration>\r\n\t\t<warSourceExcludes>src/,node/,node_modules/,package.json</warSourceExcludes>\r\n\t\t<webResources>\r\n\t\t\t<resource>\r\n\t\t\t\t<directory>src/main/webapp</directory>\r\n\t\t\t\t<filtering>false</filtering>\r\n\t\t\t\t<excludes>\r\n\t\t\t\t\t<exclude>src/**</exclude>\r\n\t\t\t\t\t<exclude>node/**</exclude>\r\n\t\t\t\t\t<exclude>node_modules/**</exclude>\r\n\t\t\t\t\t<exclude>package.json</exclude>\r\n\t\t\t\t</excludes>\r\n\t\t\t</resource>\r\n\t\t</webResources>\r\n\t</configuration>\r\n</plugin>\r\n```\r\n\r\n### `.gitignore`\r\n\r\n```\r\n/build/\r\n/node_modules/\r\n```\r\n\r\n[one]: https://twemoji.maxcdn.com/16x16/31-20e3.png \"One\"\r\n[two]: https://twemoji.maxcdn.com/16x16/32-20e3.png \"Two\"\r\n[three]: https://twemoji.maxcdn.com/16x16/33-20e3.png \"Three\"\r\n[four]: https://twemoji.maxcdn.com/16x16/34-20e3.png \"Four\"\r\n[five]: https://twemoji.maxcdn.com/16x16/35-20e3.png \"Five\"\r\n","readmeFilename":"README.md","gitHead":"0f529c7304b88b0fb2331efadfc2959da6097b19","_id":"frontend-app@1.2.0-beta.5","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-B86bT3W6U68+zMyNaF1b9iNQtmerZCsWL/g3JudTKBv7gH7dy2Oe5QiVBmggtKsesF0GFIFT6Th83lG9aEQKGw==","shasum":"26057fcedc91c8207ef38b04b6bc17c0a0b2f71c","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.2.0-beta.5.tgz","fileCount":231,"unpackedSize":196472,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+6R09oLj80wiQ4+o8qdvEy+6G2xX7ANObY0fXbrPbkwIhAOhxlJ284i2ag74JOmKiU7d1GpxoO6BwLq6jU/wNf0yM"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_1.2.0-beta.5_1521454511419_0.8189613145482724"},"_hasShrinkwrap":false},"1.2.0-beta.6":{"name":"frontend-app","version":"1.2.0-beta.6","description":"Start using latest ES syntax and features, import, export, async, await etc. and Livereload and Hot Module Replacement.","scripts":{"prebuild":"rimraf cjs es","prettier":"npm run prettier:write -- {.,{examples,src}/**}/*.{js,json} !./package-lock.json","build":"npm run inbuild --","inbuild":"library-util babel","lint":"npm run eslint && npm run prettier","eslint":"eslint {.,{examples,src}/**}/*.js --fix","precommit":"lint-staged","prepack":"npm run build","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{json,css,md}":["prettier --write","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.37","@babel/core":"^7.0.0-beta.37","@babel/plugin-proposal-class-properties":"^7.0.0-beta.37","@babel/plugin-transform-runtime":"^7.0.0-beta.37","@babel/polyfill":"^7.0.0-beta.37","@babel/preset-env":"^7.0.0-beta.37","@babel/preset-react":"^7.0.0-beta.37","@babel/preset-stage-0":"^7.0.0-beta.37","@babel/runtime":"^7.0.0-beta.37","@visma/react-intl-helpers":"^0.1.0","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","copy-webpack-plugin":"^4.2.0","cross-env":"^5.1.1","cross-spawn":"^5.1.0","css-loader":"^0.28.7","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","fs-extra":"^5.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^0.8.0","intl":"^1.2.5","json-loader":"^0.5.7","less":"^2.7.3","less-loader":"^4.0.5","lodash":"^4.17.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.6.1","raw-loader":"^1.0.0-beta.0","react-hot-loader":"^3.1.2","react-intl":"^2.4.0","rimraf":"^2.6.2","sass-loader":"^6.0.6","source-map-loader":"^0.2.3","style-loader":"^0.19.0","url-loader":"^0.6.2","webpack":"^3.8.1","webpack-cleanup-plugin":"^0.5.1","webpack-dev-server":"^2.10.0","webpack-livereload-plugin":"^1.0.0","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","whatwg-fetch":"^2.0.3","xml2js":"^0.4.19","yargs":"^10.0.3"},"devDependencies":{"@babel/register":"^7.0.0-beta.37","library-util":"^0.1.6"},"main":"cjs","module":"es","files":["cjs","es","examples"],"readme":"# frontend-app\r\n\r\nStart using latest [ES syntax](https://babeljs.io/docs/learn-es2015/) and [features](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference), `import`, `export`, `async`, `await` etc. and Livereload and Hot Module Replacement.\r\n\r\nThis includes [babel-polyfill](https://babeljs.io/docs/usage/polyfill/) and [whatwg-fetch](https://github.com/github/fetch) polyfill and transpiles code using [env](https://babeljs.io/docs/plugins/preset-env/) and [stage-0](http://babeljs.io/docs/plugins/preset-stage-0/) Babel presets, so you may use many new features of the language out-of-the-box.\r\n\r\n[JSX](https://facebook.github.io/react/docs/jsx-in-depth.html) and AngularJS dependency injection annotations ([babel-plugin-ng-annotate](https://www.npmjs.com/package/babel-plugin-ng-annotate), [ng-annotate](https://github.com/olov/ng-annotate)) are also supported.\r\n\r\n## Contents\r\n\r\n* [Getting Started](#getting-started)\r\n* [Commands](#commands)\r\n  * [init](#init)\r\n* [Scripts](#scripts)\r\n  * [bundle](#bundle)\r\n  * [dev](#dev)\r\n  * [dev-server](#dev-server)\r\n  * [build](#build)\r\n* [Options](#options)\r\n  * [type](#type)\r\n  * [port](#port)\r\n  * [devServer.port](#devserverport)\r\n  * [intl](#intl)\r\n  * [intl.locales](#intllocales)\r\n  * [polyfills](#polyfills)\r\n* [React Intl helper Components](#react-intl-helper-components)\r\n* [List of Preconfigured Loaders](#list-of-preconfigured-loaders)\r\n* [Livereload](#livereload)\r\n  * [Livereload in Liferay](#livereload-in-liferay)\r\n* [Dev Server](#dev-server)\r\n  * [Options](#options-1)\r\n* [Single Entry](#single-entry--srcentryjs-)\r\n* [Multiple Entries](#multiple-entries--srcentries-)\r\n* [Examples](#examples)\r\n  * [React](#react)\r\n  * [React (complete)](#react-complete)\r\n  * [React (multiple entries)](#react-multiple-entries)\r\n  * [Angular](#angular)\r\n* [Cookbook](#cookbook)\r\n  * [Custom Webpack Configuration](#custom-webpack-configuration)\r\n  * [Hot Module Replacement with React](#hot-module-replacement-with-react)\r\n  * [History API Fallback with HTML Webpack Plugin](#history-api-fallback-with-html-webpack-plugin)\r\n  * [CKEditor from /libs/ckeditor](#ckeditor-from-libsckeditor)\r\n  * [CKEditor from node_modules](#ckeditor-from-node_modules)\r\n  * [Font Awesome](#font-awesome)\r\n  * [Different output.publicPath in production](#different-outputpublicpath-in-production)\r\n  * [Maven](#maven)\r\n  * [.gitignore](#gitignore)\r\n\r\n## Getting Started\r\n\r\n![one] Make sure you have at least Node.js v6 and npm v5.2 installed:\r\n\r\n```sh\r\nnode -v\r\nnpm -v\r\n```\r\n\r\n![two] Create `package.json` and install frontend-app:\r\n\r\n```sh\r\nmkdir my-app\r\ncd my-app\r\nnpm init -y\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![three] Install one of the [examples](#examples) or have your app [entry point](#single-entry-srcentryjs)(s) in `src` directory and then:\r\n\r\n```sh\r\nnpm run bundle\r\n```\r\n\r\n## Commands\r\n\r\n##### init\r\n\r\nInitialize [example project](#examples).\r\n\r\n```sh\r\nnpx frontend-app init <example-name>\r\n```\r\n\r\n## Scripts\r\n\r\n##### bundle\r\n\r\nFiles are transpiled, bundled and minified to the build directory and are ready to be served. Source maps are also generated.\r\n\r\nYou may pass additional arguments to [Webpack](https://webpack.github.io/docs/) using `--`. For example, don't show progress information:\r\n\r\n```\r\nnpm run bundle -- --progress false\r\n```\r\n\r\n##### dev\r\n\r\nBundle files to disk in watch mode (see [Livereload](#livereload)).\r\n\r\n##### dev-server\r\n\r\nBundle files in watch mode (see [Dev Server](#dev-server)).\r\n\r\n## Options\r\n\r\nYou may use `package.json` `config` field to set options. Example:\r\n\r\n```json\r\n{\r\n  \"name\": \"my-app\",\r\n  \"config\": {\r\n    \"frontendApp\": {\r\n      \"type\": \"react\",\r\n      \"port\": \"8080\",\r\n      \"devServer\": {\r\n        \"port\": \"8081\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n##### type\r\n\r\n* **`react`**: Adds JSX support.\r\n* **`angular`**: Adds ng-annotate support.\r\n* **`all`**: Support JSX and ng-annotate. `ng-strict-di` is not supported in livereload mode.\r\n* **`slim`** **(default)**: Just ES2015. No React or Angular specific transformations.\r\n* **`portlet`**: Sets [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in Spring MVC Liferay plugin project built with Maven. `publicPath` is determined by `artifactId` in `pom.xml`.\r\n\r\nMultiple values are also supported. `package.json` `config.frontendApp` property example:\r\n\r\n```json\r\n{\r\n  \"type\": [\"angular\", \"portlet\"]\r\n}\r\n```\r\n\r\n##### port\r\n\r\nYour backend server port on localhost. Webpack Dev Server is configured to use this value to proxy all non-build related requests to your actual backend server. **Default: 8080**.\r\n\r\n##### devServer.port\r\n\r\nPort for Livereload/HMR enabled version of your app. **Default: port + 1**.\r\n\r\n##### intl\r\n\r\nSet `\"intl\": \"true\"` to use default list of available locales.\r\n\r\n##### intl.locales\r\n\r\nAvailable locales for [Moment.js](http://momentjs.com/), React Intl and [Intl](https://www.npmjs.com/package/intl). **Default:** `[\"fi\", \"sv\", \"en\"]` (When `\"intl\": \"true\"`).\r\n\r\n##### polyfills\r\n\r\nIncluded polyfills. **Default:** `[\"babel-polyfill\", \"whatwg-fetch\"]`. Set `\"false\"` to not include any polyfills.\r\n\r\n## React Intl helper Components\r\n\r\nMoved to [@visma/react-intl-helpers](https://www.npmjs.com/package/@visma/react-intl-helpers).\r\n\r\n## List of Preconfigured Loaders\r\n\r\n| Extension         | Loader                                                                                          |\r\n| ----------------- | ----------------------------------------------------------------------------------------------- |\r\n| **JS**            |                                                                                                 |\r\n| `.js`             | (ng-annotate-loader,) babel-loader                                                              |\r\n| **HTML**          |                                                                                                 |\r\n| `.html`           | raw-loader                                                                                      |\r\n| `.hbs`            | handlebars-template-loader                                                                      |\r\n| **Styles**        |                                                                                                 |\r\n| `.css`            | css-loader                                                                                      |\r\n| `.scss`           | sass-loader                                                                                     |\r\n| `.less`           | less-loader                                                                                     |\r\n| **Fonts & Media** |                                                                                                 |\r\n| `.woff`, `.woff2` | url-loader                                                                                      |\r\n| `.ttf`            | url-loader                                                                                      |\r\n| `.eot`            | file-loader                                                                                     |\r\n| `.svg`            | url-loader                                                                                      |\r\n| `.png`            | url-loader                                                                                      |\r\n| `.gif`            | file-loader                                                                                     |\r\n| `.jpg`            | file-loader                                                                                     |\r\n| **Other**         |                                                                                                 |\r\n| `.txt`            | raw-loader                                                                                      |\r\n| `.properties`     | [@visma/react-intl-helpers/cjs/loader](https://www.npmjs.com/package/@visma/react-intl-helpers) |\r\n\r\n### Livereload\r\n\r\nStart build process, watch changes and refresh browser automatically on changes.\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\nIf you wish to serve files from different directory while developing (i.e. server content base is elsewhere):\r\n\r\n```sh\r\nnpm run dev -- --output-path /some/other/content/base/build\r\n```\r\n\r\n#### Livereload in Liferay\r\n\r\nReplace `<liferay-path>` with the path to the Liferay installation directory, e.g. `/opt/liferay`. In that directory there should be `tomcat` directory (leave that out of the path).\r\n\r\n```sh\r\nnpm run dev --liferayPath=<liferay-path>\r\n```\r\n\r\n### Dev Server\r\n\r\nUse this for [Hot Module Replacement with React](#hot-module-replacement-with-react) or as an alternative to Livereload.\r\n\r\nHave your backend server running. Then start frontend build with Webpack Dev Server:\r\n\r\n```\r\nnpm run dev-server\r\n```\r\n\r\nGo to `http://localhost:<devServer.port>`. `<devServer.port>` defaults to `8081`.\r\n\r\n##### Options\r\n\r\n* **`port`** (optional): Your backend server port on localhost. Webpack Dev Server is configured to use this value to proxy all non-build related requests to your actual backend server. **Default: 8080**.\r\n* **`devServer.port`** (optional): Port for Livereload/HMR enabled version of your app. **Default: port + 1**.\r\n\r\n```json\r\n{\r\n  \"name\": \"my-app\",\r\n  \"config\": {\r\n    \"frontendApp\": {\r\n      \"port\": \"8080\",\r\n      \"devServer\": {\r\n        \"port\": \"8081\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Single Entry (`src/entry.js`)\r\n\r\n```\r\nmy-app/\r\n  build/                                    // generated\r\n    bundle.aa4915533a5b5f53c072.css\r\n    bundle.aa4915533a5b5f53c072.css.map\r\n    bundle.aa4915533a5b5f53c072.js\r\n    bundle.aa4915533a5b5f53c072.js.map\r\n  src/\r\n    entry.js                                // entry point\r\n    other.js\r\n  package.json\r\n```\r\n\r\n```html\r\n<link href=\"/build/bundle.css\" rel=\"stylesheet\">\r\n<script src=\"/build/bundle.js\"></script>\r\n```\r\n\r\n### Multiple Entries (`src/entries`)\r\n\r\n```\r\nmy-app/\r\n  build/                                    // generated\r\n    commons.ee0ce0879c8b5aaefae4.css\r\n    commons.ee0ce0879c8b5aaefae4.css.map\r\n    commons.ee0ce0879c8b5aaefae4.js\r\n    commons.ee0ce0879c8b5aaefae4.js.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.css\r\n    entries/pageA/bundle.8036db3af1be1831e295.css.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.js\r\n    entries/pageA/bundle.8036db3af1be1831e295.js.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.css\r\n    entries/pageB/bundle.19596c286128bce14cf9.css.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.js\r\n    entries/pageB/bundle.19596c286128bce14cf9.js.map\r\n  src/\r\n    entries/                                // entry points e.g. for each page\r\n      pageA.js\r\n      pageB.js\r\n    other.js\r\n  package.json\r\n```\r\n\r\nYou must load commons bundle before the entry point. `pageA.html`:\r\n\r\n```html\r\n<link href=\"/build/commons.css\" rel=\"stylesheet\">\r\n<link href=\"/build/pageA.css\" rel=\"stylesheet\">\r\n<script src=\"/build/commons.js\"></script>\r\n<script src=\"/build/pageA.js\"></script>\r\n```\r\n\r\n## Examples\r\n\r\n### React\r\n\r\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/) and [**React-Bootstrap**](http://react-bootstrap.github.io/):\r\n\r\n```sh\r\nnpx frontend-app init react\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n### React (complete)\r\n\r\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/), [**React-Bootstrap**](http://react-bootstrap.github.io/), [**Bootstrap 3 custom build**](https://www.npmjs.com/package/bootstrap-loader), [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react-complete\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n### React (multiple entries)\r\n\r\n![one] Install React example project for multi-portlet use, with [**Bootstrap 3 custom build**](https://www.npmjs.com/package/bootstrap-loader), [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react-multiple-entries\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n### Angular\r\n\r\n![one] Install example project with **AngularUI Router** and **Bootstrap**:\r\n\r\n```sh\r\nnpx frontend-app init angular\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8081/`.\r\n\r\n## Cookbook\r\n\r\n### Custom Webpack Configuration\r\n\r\nIf you have `webpack.config.js` in root directory, it will be merged into the built-in configuration using [webpack-merge](https://www.npmjs.com/package/webpack-merge) in `smartStrategy { 'devServer.proxy': 'replace' }` mode.\r\n\r\n```js\r\nconst { join } = require(\"path\");\r\n\r\nmodule.exports = {\r\n  module: {\r\n    rules: [\r\n      {\r\n        test: /\\.js$/,\r\n        loader: \"babel-loader\",\r\n        include: join(process.cwd(), \"node_modules/my-lib\")\r\n      }\r\n    ]\r\n  },\r\n  output: {\r\n    publicPath: \"/build/\"\r\n  }\r\n};\r\n```\r\n\r\n### Hot Module Replacement with React\r\n\r\nNo need for additional dependecies. frontend-app has react-hot-loader as its dependency.\r\n\r\n![one] Modify `src/entry.js`:\r\n\r\n```js\r\nimport { render } from \"react-dom\";\r\nimport { AppContainer } from \"react-hot-loader\";\r\nimport App from \"./App\";\r\n\r\nconst root = document.getElementById(\"root\");\r\n\r\nfunction renderer() {\r\n  render(\r\n    <AppContainer>\r\n      <App />\r\n    </AppContainer>,\r\n    root\r\n  );\r\n}\r\n\r\nif (process.env.npm_lifecycle_event === \"dev-server\") {\r\n  renderer();\r\n  module.hot.accept(\"./App\", renderer);\r\n} else {\r\n  render(<App />, root);\r\n}\r\n```\r\n\r\n![two] Set [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in `webpack.config.js`:\r\n\r\n```js\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/build/\"\r\n  }\r\n};\r\n```\r\n\r\n![three] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![four] Go to `http://localhost:<devServer.port>`. `<devServer.port>` defaults to `8081`.\r\n\r\n### [History API Fallback](https://webpack.github.io/docs/webpack-dev-server.html#the-historyapifallback-option) with [HTML Webpack Plugin](https://github.com/ampedandwired/html-webpack-plugin)\r\n\r\nSuppose there is no backend or it's on another machine, and you just need to test some frontend code with Webpack Dev Server.\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/build/\"\r\n  },\r\n  devServer: {\r\n    // Disable frontend-app built-in proxy options (optionally add own proxy options here).\r\n    proxy: {},\r\n    // Webpack Dev Server needs index.html in /build directory for historyApiFallback to work.\r\n    historyApiFallback: { index: \"/build/\" }\r\n  },\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      title: \"My App\",\r\n      filename:\r\n        process.env.npm_lifecycle_event === \"dev-server\"\r\n          ? // Webpack Dev Server needs index.html in /build directory for historyApiFallback to work.\r\n            \"index.html\"\r\n          : // Otherwise generate index.html in project root.\r\n            \"../index.html\"\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n### CKEditor from `/libs/ckeditor`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      scripts: [\"/libs/ckeditor/ckeditor.js\"],\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/libs/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### CKEditor from `node_modules`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template ckeditor\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/node_modules/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\nimport \"ckeditor\";\r\n\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### Font Awesome\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev font-awesome font-awesome-webpack@0.0.5-beta.2\r\n```\r\n\r\n![two] Usage example:\r\n\r\n```js\r\nimport \"font-awesome-webpack\";\r\n```\r\n\r\n```html\r\n<span class=\"fa fa-camera-retro\"></span>\r\n```\r\n\r\n### Different `output.publicPath` in production\r\n\r\n`process.env.NODE_ENV` is set correctly. You may use it, and for example `process.env.npm_lifecycle_event` to customize your configuration. `webpack.config.js`:\r\n\r\n```js\r\nconst production = process.env.NODE_ENV === \"production\";\r\n// process.env.npm_lifecycle_event => \"bundle\" | \"dev\" | \"dev-server\"\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: production ? \"/somepath/build/\" : \"/build/\"\r\n  }\r\n};\r\n```\r\n\r\n### Maven\r\n\r\n![one] Install in `webapp` directory:\r\n\r\n```sh\r\ncd .../src/main/webapp\r\nnpm init\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![two] Add bundle step to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n    <groupId>com.github.eirslett</groupId>\r\n    <artifactId>frontend-maven-plugin</artifactId>\r\n    <version>1.0</version>\r\n    <executions>\r\n        <execution>\r\n            <id>::install node and npm::</id>\r\n            <goals>\r\n                <goal>install-node-and-npm</goal>\r\n            </goals>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm install::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>update</arguments>\r\n            </configuration>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm run bundle::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>run bundle</arguments>\r\n            </configuration>\r\n        </execution>\r\n    </executions>\r\n    <configuration>\r\n        <nodeVersion>v6.5.0</nodeVersion>\r\n        <npmVersion>3.10.6</npmVersion>\r\n        <workingDirectory>src/main/webapp</workingDirectory>\r\n    </configuration>\r\n</plugin>\r\n```\r\n\r\n![three] Add exclude rules to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n\t<groupId>org.apache.maven.plugins</groupId>\r\n\t<artifactId>maven-war-plugin</artifactId>\r\n\t<configuration>\r\n\t\t<warSourceExcludes>src/,node/,node_modules/,package.json</warSourceExcludes>\r\n\t\t<webResources>\r\n\t\t\t<resource>\r\n\t\t\t\t<directory>src/main/webapp</directory>\r\n\t\t\t\t<filtering>false</filtering>\r\n\t\t\t\t<excludes>\r\n\t\t\t\t\t<exclude>src/**</exclude>\r\n\t\t\t\t\t<exclude>node/**</exclude>\r\n\t\t\t\t\t<exclude>node_modules/**</exclude>\r\n\t\t\t\t\t<exclude>package.json</exclude>\r\n\t\t\t\t</excludes>\r\n\t\t\t</resource>\r\n\t\t</webResources>\r\n\t</configuration>\r\n</plugin>\r\n```\r\n\r\n### `.gitignore`\r\n\r\n```\r\n/build/\r\n/node_modules/\r\n```\r\n\r\n[one]: https://twemoji.maxcdn.com/16x16/31-20e3.png \"One\"\r\n[two]: https://twemoji.maxcdn.com/16x16/32-20e3.png \"Two\"\r\n[three]: https://twemoji.maxcdn.com/16x16/33-20e3.png \"Three\"\r\n[four]: https://twemoji.maxcdn.com/16x16/34-20e3.png \"Four\"\r\n[five]: https://twemoji.maxcdn.com/16x16/35-20e3.png \"Five\"\r\n","readmeFilename":"README.md","gitHead":"5c2c8b860feb26d441d8cff27eb49edfe683d6bd","_id":"frontend-app@1.2.0-beta.6","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-7nWKMsqqUK0GwwKNHlnACkLNveYvrZ8EnHWRuVbcsIgmYHYTD+CNk/WkkoXJsL5LBZvezO1KWpuqmUzY1GgVCA==","shasum":"976a8ad82056aa26c56004880155587e0d781ee9","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-1.2.0-beta.6.tgz","fileCount":231,"unpackedSize":196847,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjKZqabvqZuGhT19JlmxbnxUyAdQqjKnYmZ8KHa8qa6AIhAPlMgDhI0S6GZ4+P33Sy9dc1QejCM+5+kBXiCxEqVzKF"}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_1.2.0-beta.6_1521458801119_0.34653279993674246"},"_hasShrinkwrap":false},"2.0.0-beta.3":{"name":"frontend-app","version":"2.0.0-beta.3","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"build":"npm run inbuild --","eslint":"eslint {.,{examples,src,template}/**}/*.js --fix","inbuild":"library-util babel --verbose","lint":"npm run eslint && npm run prettier","precommit":"lint-staged","prebuild":"rimraf cjs es","prepack":"npm run build","prettier":"npm run prettier:write -- {.,{examples,src,template}/**}/*.{js,json} !./package-lock.json","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint","test:init":"babel-node --presets @babel/env -- init-test-app.js"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{css,json,less,md,scss}":["npm run prettier:write","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.40","@babel/core":"^7.0.0-beta.40","@babel/plugin-proposal-class-properties":"^7.0.0-beta.40","@babel/plugin-transform-runtime":"^7.0.0-beta.40","@babel/polyfill":"^7.0.0-beta.40","@babel/preset-env":"^7.0.0-beta.40","@babel/preset-react":"^7.0.0-beta.40","@babel/preset-stage-0":"^7.0.0-beta.40","@babel/runtime":"^7.0.0-beta.40","@visma/react-intl-helpers":"^0.1.0","autoprefixer":"^8.1.0","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","copy-webpack-plugin":"^4.5.1","cross-env":"^5.1.4","cross-spawn":"^6.0.5","css-loader":"^0.28.10","file-loader":"^1.1.11","fs-extra":"^5.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.0.1","less-loader":"^4.1.0","library-util":"^0.1.7","lodash":"^4.17.5","mini-css-extract-plugin":"^0.2.0","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.7.2","postcss-loader":"^2.1.1","precss":"^3.1.2","raw-loader":"^0.5.1","react-intl":"^2.4.0","sass-loader":"^6.0.7","source-map-loader":"^0.2.3","style-loader":"^0.20.3","url-loader":"^1.0.1","webpack":"^4.1.1","webpack-cleanup-plugin":"^0.5.1","webpack-cli":"^2.0.11","webpack-dev-server":"^3.1.1","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.0-rc.2","webpack-merge":"^4.1.2","whatwg-fetch":"^2.0.3","yargs":"^11.0.0"},"devDependencies":{"@babel/node":"^7.0.0-beta.42","@babel/register":"^7.0.0-beta.42"},"main":"cjs","module":"es","files":["cjs","es","examples","template"],"readme":"# frontend-app\r\n\r\nStart using latest [ES syntax](https://babeljs.io/docs/learn-es2015/) and [features](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference), Livereload and Hot Module Replacement.\r\n\r\nThis includes [babel-polyfill](https://babeljs.io/docs/usage/polyfill/) and [whatwg-fetch](https://github.com/github/fetch) polyfill and transpiles code using [env](https://babeljs.io/docs/plugins/preset-env/) and [stage-0](http://babeljs.io/docs/plugins/preset-stage-0/) Babel presets, so you may use many new features of the language out-of-the-box.\r\n\r\n[JSX](https://facebook.github.io/react/docs/jsx-in-depth.html) and AngularJS dependency injection annotations ([babel-plugin-ng-annotate](https://www.npmjs.com/package/babel-plugin-ng-annotate), [ng-annotate](https://github.com/olov/ng-annotate)) are also supported.\r\n\r\n## Contents\r\n\r\n* [Getting Started](#getting-started)\r\n* [Commands](#commands)\r\n  * [init](#init)\r\n* [Scripts](#scripts)\r\n  * [build](#build)\r\n  * [dev](#dev)\r\n  * [dev-server](#dev-server)\r\n  * [build](#build)\r\n* [Options](#options)\r\n  * [type](#type)\r\n  * [port](#port)\r\n  * [devServer.port](#devserverport)\r\n  * [intl](#intl)\r\n  * [intl.locales](#intllocales)\r\n  * [polyfills](#polyfills)\r\n* [React Intl helper Components](#react-intl-helper-components)\r\n* [List of Preconfigured Loaders](#list-of-preconfigured-loaders)\r\n* [Livereload](#livereload)\r\n  * [Livereload in Liferay](#livereload-in-liferay)\r\n* [Dev Server](#dev-server)\r\n  * [Options](#options-1)\r\n* [Single Entry](#single-entry--srcentryjs-)\r\n* [Multiple Entries](#multiple-entries--srcentries-)\r\n* [Examples](#examples)\r\n  * [React](#react)\r\n  * [React (multiple entries)](#react-multiple-entries)\r\n  * [Angular](#angular)\r\n* [Webpack Configuration](#webpack-configuration)\r\n* [Cookbook](#cookbook)\r\n  * [Hot Module Replacement with React](#hot-module-replacement-with-react)\r\n  * [History API Fallback with HTML Webpack Plugin](#history-api-fallback-with-html-webpack-plugin)\r\n  * [CKEditor from /libs/ckeditor](#ckeditor-from-libsckeditor)\r\n  * [CKEditor from node_modules](#ckeditor-from-node_modules)\r\n  * [Font Awesome](#font-awesome)\r\n  * [Different output.publicPath in production](#different-outputpublicpath-in-production)\r\n  * [Maven](#maven)\r\n  * [.gitignore](#gitignore)\r\n\r\n## Getting Started\r\n\r\n![one] Make sure you have at least Node.js 6.13.1 and npm 5.2 installed:\r\n\r\n```sh\r\nnode -v\r\nnpm -v\r\n```\r\n\r\n![two] Create `package.json` and install frontend-app:\r\n\r\n```sh\r\nmkdir my-app\r\ncd my-app\r\nnpm init -y\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![three] Install one of the [examples](#examples), have your app [entry point](#single-entry-srcentryjs)(s) in `src` directory and [`webpack.config.js`](#webpack-configuration) in place. Then build using:\r\n\r\n```sh\r\nnpm run build\r\n```\r\n\r\n## Commands\r\n\r\n##### init\r\n\r\nInitialize [example project](#examples).\r\n\r\n```sh\r\nnpx frontend-app init <example-name>\r\n```\r\n\r\n## Scripts\r\n\r\n##### build\r\n\r\nFiles are transpiled, bundled and minified to the `dist` directory and are ready to be served. Source maps are also generated.\r\n\r\nYou may pass additional arguments to [Webpack](https://webpack.github.io/docs/) using `--`. For example, don't show progress information:\r\n\r\n```\r\nnpm run build -- --progress false\r\n```\r\n\r\n##### dev\r\n\r\nBundle files to disk in watch mode (see [Livereload](#livereload)).\r\n\r\n##### dev-server\r\n\r\nBundle files in watch mode (see [Dev Server](#dev-server)).\r\n\r\n## Options\r\n\r\nYou may use `package.json` `config` field to set options. Example:\r\n\r\n```json\r\n{\r\n  \"name\": \"my-app\",\r\n  \"config\": {\r\n    \"frontendApp\": {\r\n      \"type\": \"react\",\r\n      \"port\": \"8080\",\r\n      \"devServer\": {\r\n        \"port\": \"8081\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n##### type\r\n\r\n* **`react`**: Adds JSX support.\r\n* **`angular`**: Adds ng-annotate support.\r\n* **`all`**: Support JSX and ng-annotate. `ng-strict-di` is not supported in livereload mode.\r\n* **`slim`** **(default)**: Just ES2015. No React or Angular specific transformations.\r\n* **`portlet`**: Sets [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in Spring MVC Liferay plugin project built with Maven. `publicPath` is determined by `artifactId` in `pom.xml`.\r\n\r\nMultiple values are also supported. `package.json` `config.frontendApp` property example:\r\n\r\n```json\r\n{\r\n  \"type\": [\"angular\", \"portlet\"]\r\n}\r\n```\r\n\r\n##### intl\r\n\r\nSet `\"intl\": \"true\"` to use default list of available locales.\r\n\r\n##### intl.locales\r\n\r\nAvailable locales for [Moment.js](http://momentjs.com/), React Intl and [Intl](https://www.npmjs.com/package/intl). **Default:** `[\"fi\", \"sv\", \"en\"]` (When `\"intl\": \"true\"`).\r\n\r\n##### polyfills\r\n\r\nIncluded polyfills. **Default:** `[\"babel-polyfill\", \"whatwg-fetch\"]`. Set `\"false\"` to not include any polyfills.\r\n\r\n## React Intl helper Components\r\n\r\nMoved to [@visma/react-intl-helpers](https://www.npmjs.com/package/@visma/react-intl-helpers).\r\n\r\n## List of Preconfigured Loaders\r\n\r\n| Extension         | Loader                                                                                          |\r\n| ----------------- | ----------------------------------------------------------------------------------------------- |\r\n| **JS**            |                                                                                                 |\r\n| `.js`             | (ng-annotate-loader,) babel-loader                                                              |\r\n| **HTML**          |                                                                                                 |\r\n| `.html`           | raw-loader                                                                                      |\r\n| `.hbs`            | handlebars-template-loader                                                                      |\r\n| **Styles**        |                                                                                                 |\r\n| `.css`            | css-loader                                                                                      |\r\n| `.scss`           | sass-loader                                                                                     |\r\n| `.less`           | less-loader                                                                                     |\r\n| **Fonts & Media** |                                                                                                 |\r\n| `.woff`, `.woff2` | url-loader                                                                                      |\r\n| `.ttf`            | url-loader                                                                                      |\r\n| `.eot`            | file-loader                                                                                     |\r\n| `.svg`            | url-loader                                                                                      |\r\n| `.png`            | url-loader                                                                                      |\r\n| `.gif`            | file-loader                                                                                     |\r\n| `.jpg`            | file-loader                                                                                     |\r\n| **Other**         |                                                                                                 |\r\n| `.txt`            | raw-loader                                                                                      |\r\n| `.properties`     | [@visma/react-intl-helpers/cjs/loader](https://www.npmjs.com/package/@visma/react-intl-helpers) |\r\n\r\n### Livereload\r\n\r\nStart build process, watch changes and refresh browser automatically on changes.\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\nIf you wish to serve files from different directory while developing (i.e. server content base is elsewhere):\r\n\r\n```sh\r\nnpm run dev -- --output-path /some/other/content/base/dist\r\n```\r\n\r\n### Dev Server\r\n\r\nUse this for [Hot Module Replacement with React](#hot-module-replacement-with-react) or as an alternative to Livereload.\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n### Single Entry (`src/index.js`)\r\n\r\n```\r\nmy-app/\r\n  dist/                                     // generated\r\n    bundle.aa4915533a5b5f53c072.css\r\n    bundle.aa4915533a5b5f53c072.css.map\r\n    bundle.aa4915533a5b5f53c072.js\r\n    bundle.aa4915533a5b5f53c072.js.map\r\n  src/\r\n    index.js                                // entry point\r\n    other.js\r\n  package.json\r\n```\r\n\r\n```html\r\n<link href=\"/dist/bundle.aa4915533a5b5f53c072.css\" rel=\"stylesheet\">\r\n<script src=\"/dist/bundle.aa4915533a5b5f53c072.js\"></script>\r\n```\r\n\r\n### Multiple Entries (`src/entries`)\r\n\r\n```\r\nmy-app/\r\n  dist/                                     // generated\r\n    commons.ee0ce0879c8b5aaefae4.css\r\n    commons.ee0ce0879c8b5aaefae4.css.map\r\n    commons.ee0ce0879c8b5aaefae4.js\r\n    commons.ee0ce0879c8b5aaefae4.js.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.css\r\n    entries/pageA/bundle.8036db3af1be1831e295.css.map\r\n    entries/pageA/bundle.8036db3af1be1831e295.js\r\n    entries/pageA/bundle.8036db3af1be1831e295.js.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.css\r\n    entries/pageB/bundle.19596c286128bce14cf9.css.map\r\n    entries/pageB/bundle.19596c286128bce14cf9.js\r\n    entries/pageB/bundle.19596c286128bce14cf9.js.map\r\n  src/\r\n    entries/                                // entry points e.g. for each page\r\n      pageA.js\r\n      pageB.js\r\n    other.js\r\n  package.json\r\n```\r\n\r\nYou must load commons bundle before the entry point. `pageA.html`:\r\n\r\n```html\r\n<link href=\"/dist/commons.ee0ce0879c8b5aaefae4.css\" rel=\"stylesheet\">\r\n<link href=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.css\" rel=\"stylesheet\">\r\n<script src=\"/dist/commons.ee0ce0879c8b5aaefae4.js\"></script>\r\n<script src=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.js\"></script>\r\n```\r\n\r\n## Examples\r\n\r\n### React\r\n\r\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/), [**React-Bootstrap**](http://react-bootstrap.github.io/), Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n### React (multiple entries)\r\n\r\n![one] Install React example project for multi-portlet use, with Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\r\n\r\n```sh\r\nnpx frontend-app init react-multiple-entries\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n### Angular\r\n\r\n![one] Install example project with **AngularUI Router** and **Bootstrap**:\r\n\r\n```sh\r\nnpx frontend-app init angular\r\n```\r\n\r\n![two] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![three] Go to `http://localhost:8080/`.\r\n\r\n## Webpack Configuration\r\n\r\nProvide the built-in Webpack configuration. `webpack.config.js`:\r\n\r\n```js\r\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default;\r\n```\r\n\r\nOptionally merge own configuration. It will be merged into the built-in configuration using [webpack-merge](https://www.npmjs.com/package/webpack-merge) in `smartStrategy` mode:\r\n\r\n```js\r\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default.merge({\r\n  module: {\r\n    rules: [\r\n      {\r\n        test: /\\.js$/,\r\n        loader: \"babel-loader\",\r\n        include: join(process.cwd(), \"node_modules/my-lib\")\r\n      }\r\n    ]\r\n  },\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  }\r\n});\r\n```\r\n\r\nAnd/or customize the final configuration:\r\n\r\n```js\r\nmodule.exports = require(\"frontend-app/cjs/webpack/config\")\r\n  .default.merge({\r\n    output: {\r\n      publicPath: \"/dist/\"\r\n    }\r\n  })\r\n  .customize(config => {\r\n    // Edit entries.\r\n    config.entry[2] = join(config.entry[2], \"client\");\r\n    return config;\r\n  });\r\n```\r\n\r\n## Cookbook\r\n\r\n### Hot Module Replacement with React\r\n\r\nNo need for additional dependencies. frontend-app has react-hot-loader as its dependency.\r\n\r\n![one] Modify `src/index.js`:\r\n\r\n```js\r\nimport { render } from \"react-dom\";\r\nimport App from \"./App\";\r\n\r\nrender(<App />, document.getElementById(\"root\"));\r\n```\r\n\r\n![two] Set [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in `webpack.config.js`:\r\n\r\n```js\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  }\r\n};\r\n```\r\n\r\n![three] Start Webpack Dev Server:\r\n\r\n```sh\r\nnpm run dev-server\r\n```\r\n\r\n![four] Go to `http://localhost:8080`.\r\n\r\n### [History API Fallback](https://webpack.github.io/docs/webpack-dev-server.html#the-historyapifallback-option) with [HTML Webpack Plugin](https://github.com/ampedandwired/html-webpack-plugin)\r\n\r\nSuppose there is no backend or it's on another machine, and you just need to test some frontend code with Webpack Dev Server.\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: \"/dist/\"\r\n  },\r\n  devServer: {\r\n    // Webpack Dev Server needs generated index.html in /dist directory for historyApiFallback to work.\r\n    historyApiFallback: { index: \"/dist/\" }\r\n  },\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      title: \"My App\"\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n### CKEditor from `/libs/ckeditor`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      scripts: [\"/libs/ckeditor/ckeditor.js\"],\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/libs/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### CKEditor from `node_modules`\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev html-webpack-plugin html-webpack-template ckeditor\r\n```\r\n\r\n![two] Edit `webpack.config.js`:\r\n\r\n```js\r\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\r\n\r\nmodule.exports = {\r\n  plugins: [\r\n    new HtmlWebpackPlugin({\r\n      inject: false,\r\n      template: require(\"html-webpack-template\"),\r\n      window: {\r\n        CKEDITOR_BASEPATH: \"/node_modules/ckeditor/\"\r\n      }\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\n![three] Use `CKEDITOR` in your app:\r\n\r\n```js\r\nimport \"ckeditor\";\r\n\r\n// CKEDITOR is available.\r\nwindow.CKEDITOR;\r\n```\r\n\r\n### Font Awesome\r\n\r\n![one] Install dependencies:\r\n\r\n```sh\r\nnpm install --save-dev font-awesome font-awesome-webpack@0.0.5-beta.2\r\n```\r\n\r\n![two] Usage example:\r\n\r\n```js\r\nimport \"font-awesome-webpack\";\r\n```\r\n\r\n```html\r\n<span class=\"fa fa-camera-retro\"></span>\r\n```\r\n\r\n### Different `output.publicPath` in production\r\n\r\n`process.env.NODE_ENV` is set correctly. You may use `NODE_ENV`, and for example `process.env.npm_lifecycle_event` to customize your configuration. `webpack.config.js`:\r\n\r\n```js\r\nconst production = process.env.NODE_ENV === \"production\";\r\n// process.env.npm_lifecycle_event => \"build\" | \"dev\" | \"dev-server\"\r\n\r\nmodule.exports = {\r\n  output: {\r\n    publicPath: production ? \"/somepath/dist/\" : \"/dist/\"\r\n  }\r\n};\r\n```\r\n\r\n### Maven\r\n\r\n![one] Install in `webapp` directory:\r\n\r\n```sh\r\ncd .../src/main/webapp\r\nnpm init\r\nnpm install --save-dev frontend-app\r\n```\r\n\r\n![two] Add build step to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n    <groupId>com.github.eirslett</groupId>\r\n    <artifactId>frontend-maven-plugin</artifactId>\r\n    <version>1.0</version>\r\n    <executions>\r\n        <execution>\r\n            <id>::install node and npm::</id>\r\n            <goals>\r\n                <goal>install-node-and-npm</goal>\r\n            </goals>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm install::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>update</arguments>\r\n            </configuration>\r\n        </execution>\r\n        <execution>\r\n            <id>::npm run build::</id>\r\n            <goals>\r\n                <goal>npm</goal>\r\n            </goals>\r\n            <configuration>\r\n                <arguments>run build</arguments>\r\n            </configuration>\r\n        </execution>\r\n    </executions>\r\n    <configuration>\r\n        <nodeVersion>v6.5.0</nodeVersion>\r\n        <npmVersion>3.10.6</npmVersion>\r\n        <workingDirectory>src/main/webapp</workingDirectory>\r\n    </configuration>\r\n</plugin>\r\n```\r\n\r\n![three] Add exclude rules to `pom.xml`:\r\n\r\n```xml\r\n<plugin>\r\n\t<groupId>org.apache.maven.plugins</groupId>\r\n\t<artifactId>maven-war-plugin</artifactId>\r\n\t<configuration>\r\n\t\t<warSourceExcludes>src/,node/,node_modules/,package.json</warSourceExcludes>\r\n\t\t<webResources>\r\n\t\t\t<resource>\r\n\t\t\t\t<directory>src/main/webapp</directory>\r\n\t\t\t\t<filtering>false</filtering>\r\n\t\t\t\t<excludes>\r\n\t\t\t\t\t<exclude>src/**</exclude>\r\n\t\t\t\t\t<exclude>node/**</exclude>\r\n\t\t\t\t\t<exclude>node_modules/**</exclude>\r\n\t\t\t\t\t<exclude>package.json</exclude>\r\n\t\t\t\t</excludes>\r\n\t\t\t</resource>\r\n\t\t</webResources>\r\n\t</configuration>\r\n</plugin>\r\n```\r\n\r\n### `.gitignore`\r\n\r\n```\r\n/dist/\r\n/node_modules/\r\n```\r\n\r\n[one]: https://twemoji.maxcdn.com/16x16/31-20e3.png \"One\"\r\n[two]: https://twemoji.maxcdn.com/16x16/32-20e3.png \"Two\"\r\n[three]: https://twemoji.maxcdn.com/16x16/33-20e3.png \"Three\"\r\n[four]: https://twemoji.maxcdn.com/16x16/34-20e3.png \"Four\"\r\n[five]: https://twemoji.maxcdn.com/16x16/35-20e3.png \"Five\"\r\n","readmeFilename":"README.md","gitHead":"ad0b689804924a60b12ca773befcb2e995de1981","_id":"frontend-app@2.0.0-beta.3","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"visma","email":"arno.saine@visma.com"},"dist":{"integrity":"sha512-GwH4j17ICq+lEPovh0pi5tS0KnU6/W8i7yo1PSnjL8ExmsELTdwaiyB9zo5eEX/kp6WW07WSHWuKgDjyaQLmvw==","shasum":"e0fed86899f5a649eab031be071dd82f5e20474d","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0-beta.3.tgz","fileCount":177,"unpackedSize":157624,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDX3J9eMhHp8/MksN7AHE8mgOxMladO9CkCJab4yMDQtQIgLhtFlKDUbFxBshpGJqnTeYwIjh2fY0IK/JBoj7tI+Xw="}]},"maintainers":[{"name":"visma","email":"arno.saine@visma.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0-beta.3_1521830813617_0.4098650584548573"},"_hasShrinkwrap":false},"2.0.0-beta.4":{"name":"frontend-app","version":"2.0.0-beta.4","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"build":"npm run inbuild --","eslint":"eslint {.,{examples,src,template}/**}/*.js --fix","inbuild":"library-util babel --verbose","lint":"npm run eslint && npm run prettier","precommit":"lint-staged","prebuild":"rimraf cjs es","prepack":"npm run build","prettier":"npm run prettier:write -- {.,{examples,src,template}/**}/*.{js,json} !./package-lock.json","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint","test:init":"babel-node --presets @babel/env -- init-test-app.js"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{css,json,less,md,scss}":["npm run prettier:write","git add"]},"license":"ISC","dependencies":{"@babel/cli":"^7.0.0-beta.40","@babel/core":"^7.0.0-beta.40","@babel/plugin-proposal-class-properties":"^7.0.0-beta.40","@babel/plugin-transform-runtime":"^7.0.0-beta.40","@babel/polyfill":"^7.0.0-beta.40","@babel/preset-env":"^7.0.0-beta.40","@babel/preset-react":"^7.0.0-beta.40","@babel/preset-stage-0":"^7.0.0-beta.40","@babel/runtime":"^7.0.0-beta.40","@visma/react-intl-helpers":"^0.1.0","autoprefixer":"^8.1.0","babel-loader":"^8.0.0-beta.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","copy-webpack-plugin":"^4.5.1","cross-env":"^5.1.4","cross-spawn":"^6.0.5","css-loader":"^0.28.10","file-loader":"^1.1.11","fs-extra":"^5.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.0.1","less-loader":"^4.1.0","library-util":"^0.1.7","lodash":"^4.17.5","mini-css-extract-plugin":"^0.2.0","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.2.1-pre","node-sass":"^4.7.2","postcss-loader":"^2.1.1","precss":"^3.1.2","raw-loader":"^0.5.1","react-intl":"^2.4.0","sass-loader":"^6.0.7","source-map-loader":"^0.2.3","style-loader":"^0.20.3","url-loader":"^1.0.1","webpack":"^4.1.1","webpack-cleanup-plugin":"^0.5.1","webpack-cli":"^2.0.11","webpack-dev-server":"^3.1.1","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.0-rc.2","webpack-merge":"^4.1.2","whatwg-fetch":"^2.0.3","yargs":"^11.0.0"},"devDependencies":{"@babel/node":"^7.0.0-beta.42","@babel/register":"^7.0.0-beta.42"},"main":"cjs","module":"es","files":["cjs","es","examples","template"],"gitHead":"4ca4c69a4dca14af46d34372991c3018da5c3b13","_id":"frontend-app@2.0.0-beta.4","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"arnosaine","email":"arno@mowhi.com"},"dist":{"integrity":"sha512-cySuIsjnK/jTDVBx2Iuu0qP4iwbJcZnRv6moS0mZet/3B7LNdJ4RevD0tczxYbR5/LaDYL19W9biHFU3Cv/5fw==","shasum":"ab818a3b9701a2c85ea39bc6ec93936df4d9f54a","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0-beta.4.tgz","fileCount":180,"unpackedSize":162055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/riVCRA9TVsSAnZWagAA6/4QAIpg/jTEk4TYuJGyrKF+\nDh+pgYrmMHGFqSGg7ew6tcZDZ7RHFT9FH56IyA+qjMlCIjLBzB8rDCOuvmmf\ngQlXZDDlQuQUavt3dp8noi/NkiRVWecZo2YpWX8stvNn8ZWlZcDeKj6ujsb/\nILm0yeeEEcT3E0+e+lSqw7HiQXXhaaSWXca2706Yjt/hMkgdR4gmqX0kpk3k\nB+DuRAdYWglN8vKM+y9a6YEIDBM5N1eFz3L1tuBIxh2cewFm5oBscUw0TeOx\nCegdyq0NG/xKUWKKe8l0OywsIgqPz8GCHbPgiRx4sSootzTGtdEqwDDaQhtL\n9t8omRuIsU1+8zRMizm19QMxeMoAzY5AgII6CxTgOfX8SLcORW0b3R9SLhdI\nJS8HmiBdNRSC02HkOb5BP4Q3o34Lcscm7Q3ilM5krxN5b2yPVCOmhG8nxjAM\nPQunByaWmzVliyJDEaH7IVPankOTkLT/Bo8Se6Zkvp8m/FWBxXX/8AReCGTa\nVQb++VHc6HwDpDke4UmMoODTB7GWbacje9X6ig4gBT4GpFeBTC2o7YUhbQ9f\nlFxFpldy49cpHFIn8NJHQnUGh2HomwXMpQLpGux8fTqlLmbbtwYm7Lpp8Pf8\n3foF7LOmcsN19YiWo8IYnAn9pvr7FhLou6tSQyezvgiSGuR76FsK53BR5Wmn\nrE59\r\n=7uLT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKBCqDSvA7M7jAHLz1crpCtrUe8QgvP8B4lNwct9rg2gIhAMxdyFLCszuk/EAu3NBKhqqYQBeDnLaa3AsCD0Rii2ef"}]},"maintainers":[{"email":"arno@mowhi.com","name":"arnosaine"},{"email":"arno.saine@visma.com","name":"visma_arnosaine"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0-beta.4_1526642835673_0.22901151274325637"},"_hasShrinkwrap":false},"2.0.0-rc.1":{"name":"frontend-app","version":"2.0.0-rc.1","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"build":"npm run inbuild --","eslint":"eslint {.,{examples,src,template}/**}/*.js --fix","inbuild":"library-util babel --verbose","lint":"npm run eslint && npm run prettier","precommit_":"lint-staged","prebuild":"rimraf cjs es","prepack":"npm run build","prettier":"npm run prettier:write -- {.,{examples,src,template}/**}/*.{js,json} !./package-lock.json","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint","test:init":"babel-node --presets @babel/env -- init-test-app.js"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{css,json,less,md,scss}":["npm run prettier:write","git add"]},"license":"ISC","dependencies":{"@visma/react-intl-helpers":"^0.1.4","autoprefixer":"^9.1.1","babel-loader":"^8.0.0-beta.4","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","copy-webpack-plugin":"^4.5.2","cross-env":"^5.2.0","cross-spawn":"^6.0.5","css-loader":"^1.0.0","file-loader":"^1.1.11","fs-extra":"^7.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.8.1","less-loader":"^4.1.0","library-util":"^0.1.10","lodash":"^4.17.10","mini-css-extract-plugin":"^0.4.1","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.3.0","node-sass":"^4.9.3","postcss-loader":"^3.0.0","precss":"^3.1.2","raw-loader":"^0.5.1","react-intl":"^2.4.0","sass-loader":"^7.1.0","source-map-loader":"^0.2.3","style-loader":"^0.22.1","url-loader":"^1.0.1","webpack":"^4.16.5","webpack-cleanup-plugin":"^0.5.1","webpack-cli":"^3.1.0","webpack-dev-server":"^3.1.5","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.3","webpack-merge":"^4.1.4","whatwg-fetch":"^2.0.4","yargs":"^12.0.1"},"devDependencies":{"@babel/node":"^7.0.0-rc.1","@babel/register":"^7.0.0-rc.1"},"main":"cjs","module":"es","files":["cjs","es","examples","template"],"gitHead":"c24059b9a74a01b4f7109e2d32f8d2027ffad16d","_id":"frontend-app@2.0.0-rc.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"arnosaine","email":"arno@mowhi.com"},"dist":{"integrity":"sha512-qfAGjAHOaQKiF41HV7gO2RARY5otG4VbvCn05VHs4q+Ah+lHcftYwwWTWZMqS/b18WqHv4pvtY/evA0N1mg6ng==","shasum":"85ed184fffba40667cec5bdbf471379189e84165","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0-rc.1.tgz","fileCount":180,"unpackedSize":175259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcaYlCRA9TVsSAnZWagAAAAEP/0Z6d/9StJDZ7+iVKJov\niArFz/xcx2DEIGEV5y/bI5brKv6ov6s/HhQRi8QCfFj7ajrwPIrXAJgqVUV2\nfDwEtTiKwbu+NeIMZnLb0+FZZzSrG7gtgdc3ctW/i4lTH+OUMgsAaif4DyTR\neYbX6yMKi4KhuLqH8WqqOKt6yFxo4nBLlnmjhmpte62UNWpAJwi+8WVkmfAc\nfRzKo7zbfoBmn/eqn//X1a75gXEwe6Rs8sHaZxG+2OqoST6JENAAxM3RktRj\nB2l+spTeGw7Kj6cGoBwsYetVUDRU7qiv8yqOFMExQ6QaWKm7hMM1ZIL9g1o0\nU28sOJk4xE/2wyYTXmbt11xCfx6PHTV8z7Onv0q/0piO6CSRXfQat+LidsXh\n2cxsIFhdnQJpHe4pZFFMhrL9Ym+Jwow8PA1NUu63PCOTuQGswfaEEGAM3KM4\n3R29FTj/qfcZrG793bJAbG1HhVcXLRB/V32b5ecqQdoJqZHfDM1puse+fj0J\n6We/MTO6Y56pLmGPDFUs48fnS/EEJt8stkBOYNaCgCK4jiu9kZV+tQHDxGDn\ny7l3LiVhr2vNp3OhvnxV4rk/c/df1Z3WP9B6J/NYY6Q/dLeEoM9+NzQF1sXv\nue3wPFzUjDXZR31q0WRmBaiifzQfv/zQTAN57Y+fXu2LQCcvFmYOReTF1iYs\nxVjN\r\n=1r+W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFeM8y5c/AO/xGBz3b8vw15v8N0nl9JyWiuGPakFWxwrAiAdgeVirrujHIb135rBOS1mWKxx9+imEF44BEKoxM548Q=="}]},"maintainers":[{"email":"arno@mowhi.com","name":"arnosaine"},{"email":"arno.saine@visma.com","name":"visma_arnosaine"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0-rc.1_1534174756944_0.5666498154160242"},"_hasShrinkwrap":false},"2.0.0-rc.2":{"name":"frontend-app","version":"2.0.0-rc.2","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"build":"npm run inbuild --","eslint":"eslint {.,{examples,src,template}/**}/*.js --fix","inbuild":"library-util babel --verbose","lint":"npm run eslint && npm run prettier","precommit_":"lint-staged","prebuild":"rimraf cjs es","prepack":"npm run build","prettier":"npm run prettier:write -- {.,{examples,src,template}/**}/*.{js,json} !./package-lock.json","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint","test:init":"babel-node --presets @babel/env -- init-test-app.js"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{css,json,less,md,scss}":["npm run prettier:write","git add"]},"license":"ISC","dependencies":{"@visma/react-intl-helpers":"^0.1.4","autoprefixer":"^9.1.3","babel-loader":"^8.0.0-beta.6","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","clean-webpack-plugin":"^0.1.19","copy-webpack-plugin":"^4.5.2","cross-env":"^5.2.0","cross-spawn":"^6.0.5","css-loader":"^1.0.0","file-loader":"^2.0.0","fs-extra":"^7.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.8.1","less-loader":"^4.1.0","library-util":"^0.1.10","lodash":"^4.17.10","mini-css-extract-plugin":"^0.4.2","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.3.0","node-sass":"^4.9.3","postcss-loader":"^3.0.0","precss":"^3.1.2","raw-loader":"^0.5.1","react-intl":"^2.4.0","sass-loader":"^7.1.0","source-map-loader":"^0.2.4","style-loader":"^0.22.1","url-loader":"^1.1.1","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-server":"^3.1.5","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.3","webpack-merge":"^4.1.4","whatwg-fetch":"^2.0.4","yargs":"^12.0.1"},"devDependencies":{"@babel/node":"^7.0.0-rc.2","@babel/register":"^7.0.0-rc.2"},"main":"cjs","module":"es","files":["cjs","es","examples","template"],"gitHead":"0437d51e096c631c562ba8d940380e2ea43661b4","_id":"frontend-app@2.0.0-rc.2","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"arnosaine","email":"arno@mowhi.com"},"dist":{"integrity":"sha512-dumfU7VmvIADxyu9Jxn9B46bNYe+gqs5QcjUqaOAUg7WQav1KeChUU2jrt6fa1QDTTU3tX/HJx8xyhyYRWIbRQ==","shasum":"ec75decb55f743f318613ad18169411020940f14","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0-rc.2.tgz","fileCount":180,"unpackedSize":175183,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgDESCRA9TVsSAnZWagAAhP4P+gPCi9krZI6BeQi5ST17\nlYfH3f/TSEHOi1rsTbHI75IVzWBrcHIlY8Q08oznBhn9YbpXI1slyrNDuFjS\nT/79EOx1P0D+cJ948qi2XVyfgVmMCTL8FOKUjHJSQi5RaoIluU8lkZ+5MW87\nokryZDRcWNRi24jETbe2S4RlR1Auf8R2FwjgZnj4vnP+Ke4ORtGo8cTTrpdy\nyg0U4oLm7k387bXbTkzYCDZSj24y4Bk1XQ0RzhaesXoXW/jBbvDyQWWjdCSK\n19bBmVibQbjI9e4rS2eNvYiwF4yUrNE5H+V3RNg4Xq5XdomzTZXeNYbbSbVk\ntuf2jBx715GDDWpAgvxQdSbivZpMwvSB7MDy+DXnnfzjxCnw8vOIkfSpeBfa\nhH8jYpaTQIBnNXRL1Sfse/jT7HZQSOhqg2gbGClSX0HLNCg+5yyUK7IlQlu8\n9VJw46MJkY9JZmpCwl8XXvnreW7Y1z/xM5WVyX13jZ2PSiUvJxBnNE+CyDwz\neYG1hYnkewbbpbQ/ITMX0kBSXmiD0TdUeBhEM5+v7wRIytjnQdmk2lenhip/\ntfdZYeFMcW7mt8VPNvHgOvx6uJAl3nciFhA6xieBeOb7b9D7n9bIXjRcJkDf\nAQVpVGJVcj2edMkZT/LA+xhik/F5xjrGh50hbpnKaRYprdIEpT0/YhJmAEnV\nv7ch\r\n=CF/a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4Gs7/1M5VXg4P4BNu5yOeVqK6vBg0aSHJ6uXfsi8h+gIhAKbFl/jvQIHJ2QR+nwPBDSH9P8UxYiWN5sWbGftbyDoy"}]},"maintainers":[{"email":"arno@mowhi.com","name":"arnosaine"},{"email":"arno.saine@visma.com","name":"visma_arnosaine"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0-rc.2_1535127826275_0.9797544405814747"},"_hasShrinkwrap":false},"2.0.0":{"name":"frontend-app","version":"2.0.0","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"build":"npm run inbuild --","eslint":"eslint {.,{examples,src,template}/**}/*.js --fix","inbuild":"library-util babel --verbose","lint":"npm run eslint && npm run prettier","precommit":"lint-staged","prebuild":"rimraf cjs es","prepack":"npm run build","prettier":"npm run prettier:write -- {.,{examples,src,template}/**}/*.{js,json} !./package-lock.json","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint","test:init":"babel-node --presets @babel/env -- init-test-app.js"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{css,json,less,md,scss}":["npm run prettier:write","git add"]},"license":"ISC","dependencies":{"@visma/react-intl-helpers":"^0.1.4","autoprefixer":"^9.1.3","babel-loader":"^8.0.0","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.0","clean-webpack-plugin":"^0.1.19","copy-webpack-plugin":"^4.5.2","cross-env":"^5.2.0","cross-spawn":"^6.0.5","css-loader":"^1.0.0","file-loader":"^2.0.0","fs-extra":"^7.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.8.1","less-loader":"^4.1.0","library-util":"^0.1.11","lodash":"^4.17.10","mini-css-extract-plugin":"^0.4.2","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.3.0","node-sass":"^4.9.3","postcss-loader":"^3.0.0","precss":"^3.1.2","raw-loader":"^0.5.1","react-intl":"^2.4.0","sass-loader":"^7.1.0","source-map-loader":"^0.2.4","style-loader":"^0.22.1","url-loader":"^1.1.1","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-server":"^3.1.6","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.3","webpack-merge":"^4.1.4","whatwg-fetch":"^2.0.4","yargs":"^12.0.1"},"devDependencies":{"@babel/node":"^7.0.0","@babel/register":"^7.0.0"},"main":"cjs","module":"es","gitHead":"577afd018b334a1e0dda8ec603520f803624ea34","_id":"frontend-app@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"arnosaine","email":"arno@mowhi.com"},"dist":{"integrity":"sha512-oqeOais+UY6hBFspekarH1U7+t16GkBcSJafWawZRaMC2ertNKGwI1/bGiOPdZI4udFd1E8qwQlpT4yM4WIi2g==","shasum":"fda49e7f98f649132f514c033e9576a51dc61a95","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.0.0.tgz","fileCount":181,"unpackedSize":176723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhoe6CRA9TVsSAnZWagAAFEYQAI/LnszGwQVqxzEebL3j\nUerer5e+NS6LQULUvv0AY5gVthRGSSATUyWD9EDluvmoWRwMK+NTTZhpClw+\n4d3ceTpdWp0mRv/c4/iLAHLfC26m9jmoxWooyPcSSALWv1BG83Agcp6Tfr54\nDnv2J8q8KM4E6GDBW0CDBal00t4buEyENNmvJl1mjPs029Ysk+HrvbJCpIDb\n8WbgEA8NSwA+6Nt0w76LMP5j9bXqe4ZROIjZ7We/U99RHzZA/yRs08icX5PF\n0Dd3ayZS7AQ6yDOyMlR6oEedwdSHbOALD8TfLYKx1a2MRFRisTr2FnABPJxk\nJmgPL+TukFZpGUtHBe0Yaivqv8Tv19OSMwoxgOmA05dHZ2N5pnWtA4gBLcAY\nFyWJaSY4lyTROFztacKyeegdiQAGvqkh9MFuXJOlGLj2F2MfcCZ/P9dS797w\nj7HaklW+dmIKEPagdeuboMJr4N736GObuQupxZoWFi/TjQ0F1ATTgLdnb6RQ\n4KT2L8Gka+11RxtB2iIdWfSobhkRu+bD/6PFYq4lLBWPMiH8jxmq76w0vlZO\nb10QZFGGUxZzV+HPL2CLMOAeb+PaGb18pC3tFwMwDVC8oMUI/e9Rf62h7SbM\nxNsNU4NWsZtNOg+ChJfn7J3Z1KJxc2MFUItb+M2wl77F7n7US6ijr9lcQ9hL\nvyOX\r\n=uHmL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKFuASen3vvaP6soSCYLf/Xb6LRNberH6ZzxTp/jrSSwIgcvGg5qLZWiYWUlbsqpEUqguhbqFZMegnFR2zffSWytY="}]},"maintainers":[{"email":"arno@mowhi.com","name":"arnosaine"},{"email":"arno.saine@visma.com","name":"visma_arnosaine"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.0.0_1535543226002_0.7400017497385689"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"2.1.0":{"name":"frontend-app","version":"2.1.0","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"build":"npm run inbuild --","eslint":"eslint {.,{examples,src,template}/**}/*.js --fix","inbuild":"library-util babel --verbose","lint":"npm run eslint && npm run prettier","precommit":"lint-staged","prebuild":"rimraf cjs es","prepack":"npm run build","prettier":"npm run prettier:write -- {.,{examples,src,template}/**}/*.{js,json} !./package-lock.json","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint","test:init":"babel-node --presets @babel/env -- init-test-app.js"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{css,json,less,md,scss}":["npm run prettier:write","git add"]},"license":"ISC","dependencies":{"@visma/react-intl-helpers":"^0.1.5","autoprefixer":"^9.1.5","babel-loader":"^8.0.4","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.1","clean-webpack-plugin":"^0.1.19","cross-env":"^5.2.0","cross-spawn":"^6.0.5","css-loader":"^1.0.0","file-loader":"^2.0.0","fs-extra":"^7.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.8.1","less-loader":"^4.1.0","library-util":"^0.1.11","lodash":"^4.17.11","mini-css-extract-plugin":"^0.4.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.3.0","node-sass":"^4.9.3","postcss-loader":"^3.0.0","precss":"^3.1.2","raw-loader":"^0.5.1","react-intl":"^2.7.1","sass-loader":"^7.1.0","source-map-loader":"^0.2.4","style-loader":"^0.23.1","url-loader":"^1.1.2","webpack":"^4.20.2","webpack-cli":"^3.1.2","webpack-dev-server":"^3.1.9","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.4","webpack-merge":"^4.1.4","whatwg-fetch":"^3.0.0","yargs":"^12.0.2"},"devDependencies":{"@babel/node":"^7.0.0","@babel/register":"^7.0.0"},"main":"cjs","module":"es","gitHead":"acbe35ee8b5af9cb7d9cc25052813696c43c6faa","_id":"frontend-app@2.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"arnosaine","email":"arno@mowhi.com"},"dist":{"integrity":"sha512-XHtw2yalSPdF0pyXa3obqCpLaqYPrSLXzYhfZ3d9CS/0GgZCImLHF1JZ7AzR94GrV6z/odbaYvHVqLBlDvwDag==","shasum":"2b09615a7505fbcb85a1bca3100a5ecebe99d54c","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.1.0.tgz","fileCount":181,"unpackedSize":174620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwMXZCRA9TVsSAnZWagAA6UsP/imqnY0alHGi7Qdr6aWJ\n4FO6CZdMMbKHRUBAsa++xlbS7B5zTc0oT7wzAyR2SrRxpS311PsK+YvcZikO\n+OVV5zU+0P/oaZWu4Lvra/y4Dx25a2vi/qN1ji6g2aZnCJmFUD9D5SjjVans\nBO9X+6RkRPhk2bxhxHHMjFrOKz6ZxFPCAAQYg5VyRnTp4BAmOQlvswoDxOht\ns7sqeIM9lkfVTIr7srRTAnAzY16Nw68eaCfAvJGig2hMouJuEiCLdZmilDPy\nQsKRGUec657o51aQz1FuhElUhhrkedRlEwrfgh54CGSzcZx4MNdsqSk8PwFv\ntx09q9E92cV76bIdkq31mjBvbvgV4gu4UwTEkqOH25aT7aBRpLx6hyVLUxw0\n//WzpQByAHtSjFwdQO6Wvs9I2Y92Ihn/1foBp5T2ID8ZXNMhOQsqY2AW68QQ\nymNI3PZ7/9TYdlmxEDZ7LkSB88XyFzi3DXCcsjhmHV8naofVjlUfVXQE7VhD\nQZki9AwAp4H7BmKkgUc4wd1wuGHPAstx5ioSOkbpCqBO2uQW6kzoBOaC4axq\nW/BCWsf1e2YYn/XPHM62ipAl5aV6CzqAxD8asB2TeCNXtaqlehSdO92GPo6j\n67ltO5vJgHrKShHafKw12sWNwdaLO/lcU2JJBieXdyMCL2uozMjba9lyghLI\n1V1q\r\n=m5B3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyZwOjvUukM0pYjv132+juVV6/LlaTNYz9gwV4hQFlDQIhAKRWLSDqw+UKkxwuz8zM2bsDrzrnGDV30KrRokVtQTdY"}]},"maintainers":[{"email":"arno@mowhi.com","name":"arnosaine"},{"email":"arno.saine@visma.com","name":"visma_arnosaine"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.1.0_1539360215931_0.6720926273995336"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @visma/create-react-app-template"},"2.2.0":{"name":"frontend-app","version":"2.2.0","description":"Start using latest ES syntax and features, Livereload and Hot Module Replacement.","scripts":{"build":"npm run inbuild --","eslint":"eslint {.,{examples,src,template}/**}/*.js --fix","inbuild":"library-util babel --verbose","lint":"npm run eslint && npm run prettier","precommit":"lint-staged","prebuild":"rimraf cjs es","prepack":"npm run build","prettier":"npm run prettier:write -- {.,{examples,src,template}/**}/*.{js,json} !./package-lock.json","prettier:write":"prettier --config .prettierrc.js --write","preversion":"npm run lint","test:init":"babel-node --presets @babel/env -- init-test-app.js"},"bin":{"frontend-app":"./cjs/scripts/index.js"},"repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"lint-staged":{"*.js":["eslint --fix","npm run prettier:write","git add"],"*.{css,json,less,md,scss}":["npm run prettier:write","git add"]},"license":"ISC","dependencies":{"@visma/react-intl-helpers":"^0.1.5","autoprefixer":"^9.3.1","babel-loader":"^8.0.4","babel-plugin-ng-annotate":"^0.3.2","babel-plugin-react-require":"^3.0.1","clean-webpack-plugin":"^0.1.19","cross-env":"^5.2.0","cross-spawn":"^6.0.5","css-loader":"^1.0.1","file-loader":"^2.0.0","fs-extra":"^7.0.0","fs-readdir-recursive":"^1.1.0","handlebars-template-loader":"^1.0.0","intl":"^1.2.5","is-plain-object":"^2.0.4","json-loader":"^0.5.7","less":"^3.8.1","less-loader":"^4.1.0","library-util":"^0.1.11","lodash":"^4.17.11","mini-css-extract-plugin":"^0.4.4","ng-annotate-loader":"^0.6.1","ng-annotate-webpack-plugin":"^0.3.0","node-sass":"^4.10.0","postcss-loader":"^3.0.0","precss":"^3.1.2","raw-loader":"^0.5.1","react-intl":"^2.7.2","sass-loader":"^7.1.0","source-map-loader":"^0.2.4","style-loader":"^0.23.1","url-loader":"^1.1.2","webpack":"^4.24.0","webpack-cli":"^3.1.2","webpack-dev-server":"^3.1.10","webpack-livereload-plugin":"^2.0.0","webpack-manifest-plugin":"^2.0.4","webpack-merge":"^4.1.4","whatwg-fetch":"^3.0.0","yargs":"^12.0.2"},"devDependencies":{"@babel/node":"^7.0.0","@babel/register":"^7.0.0"},"main":"cjs","module":"es","gitHead":"d59bffb828fbe065a351c813800f71fc73000633","_id":"frontend-app@2.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"arnosaine","email":"arno@mowhi.com"},"dist":{"integrity":"sha512-NumNPrgFmYXH5pYkdHyOKUCxZfp84zU/u0B5QXENdiWv4fANT7SC8G/LyWX2QWIfSMIcrQi1VCZ4LMA4j8NoYQ==","shasum":"81fb94b36469b49272a67bda8c5e93d480e897ee","tarball":"https://registry.npmjs.org/frontend-app/-/frontend-app-2.2.0.tgz","fileCount":181,"unpackedSize":174750,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4EIBCRA9TVsSAnZWagAAXd0P/3f9Ptw5eljGbYLAggLy\nv+9M7kVq46yRnpX8TvBZHQvpysifZ0NtRoprzMKNUUX9WbLjjultFx6G4QKk\nGq5yVIagGDNNNjxeKDdyRKtZiNGJ673J45MGasZqpKAc3lTjR2qEBGm9dN17\nd7nIB1PJ/70+ghlVWUYfC82ysAwPESVqNBj9PCx248r3KdUpZuaOz7AdzMn5\ng12+0De3BLI5S/qtOP1B/olspDzYD9+BMnZgQ7XhrpRbDgQX1JzN86jErXJK\n2rVUUKRMPlBR3B2R6dZ/4piPLSauaQSNMf3oxlgt1Nv7I7zXshL2+QyoTuYR\ni/vbgJxA2WMuXCe5VdCioP9Z9Q+XSsFtEHX7gozjMH8DztapDJpCQ3d+LIR5\nov+MQvQkizsIElzZO91yQv40KJfweGlDZws7a4i5HEow8ylDLOpx1YM7ClQ4\nwQGc0Z8LebGfTcPMsu4dq8kOJFMHxAvL/x+MKkn94oicVnJZ6oxFPKmqIRGw\nJnqGtUdVB0A1BXiDrsT43b2HBbWn1n1uM+XFkYOyONcueyUFTA3Yx70hu3RE\nwpYcfehyYk2l90d1bo4qGZgKP81cVZAEMS6H/dZShGfx4EfjbmSaFKfFf4Wj\nyqYgrXi7J7tMgnHkGCOzSFzTtFKw1L6MhTgyWMZ0xaVeO+r3n5AtsZYeK/AN\nQ9jm\r\n=GoV7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsdJV8YxQLeDltTCNXL5+PjNw4DxCNH3vy/Iba+dONLAiEA+Feh9gSd4NWSIpWyAG1BdHrSfwwF6uw+n+B/k8Y2Yrw="}]},"maintainers":[{"email":"arno@mowhi.com","name":"arnosaine"},{"email":"arno.saine@visma.com","name":"visma_arnosaine"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frontend-app_2.2.0_1541423615933_0.9686732661965611"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @visma/create-react-app-template"}},"readme":"# frontend-app\n\nStart using latest [ES syntax](https://babeljs.io/docs/learn-es2015/) and [features](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference), Livereload and Hot Module Replacement.\n\nThis includes [babel-polyfill](https://babeljs.io/docs/usage/polyfill/) and [whatwg-fetch](https://github.com/github/fetch) polyfill and transpiles code using [env](https://babeljs.io/docs/plugins/preset-env/) and [stage-0](http://babeljs.io/docs/plugins/preset-stage-0/) Babel presets, so you may use many new features of the language out-of-the-box.\n\n[JSX](https://facebook.github.io/react/docs/jsx-in-depth.html) and AngularJS dependency injection annotations ([babel-plugin-ng-annotate](https://www.npmjs.com/package/babel-plugin-ng-annotate), [ng-annotate](https://github.com/olov/ng-annotate)) are also supported.\n\n## Contents\n\n- [Getting Started](#getting-started)\n- [Commands](#commands)\n  - [init](#init)\n- [Scripts](#scripts)\n  - [build](#build)\n  - [dev](#dev)\n  - [dev-server](#dev-server)\n  - [build](#build)\n- [Options](#options)\n  - [type](#type)\n  - [port](#port)\n  - [devServer.port](#devserverport)\n  - [intl](#intl)\n  - [intl.locales](#intllocales)\n  - [polyfills](#polyfills)\n- [React Intl helper Components](#react-intl-helper-components)\n- [List of Preconfigured Loaders](#list-of-preconfigured-loaders)\n- [Livereload](#livereload)\n  - [Livereload in Liferay](#livereload-in-liferay)\n- [Dev Server](#dev-server)\n  - [Options](#options-1)\n- [Single Entry](#single-entry--srcentryjs-)\n- [Multiple Entries](#multiple-entries--srcentries-)\n- [Examples](#examples)\n  - [React](#react)\n  - [React (multiple entries)](#react-multiple-entries)\n  - [Angular](#angular)\n- [Webpack Configuration](#webpack-configuration)\n- [Cookbook](#cookbook)\n  - [Hot Module Replacement with React](#hot-module-replacement-with-react)\n  - [History API Fallback with HTML Webpack Plugin](#history-api-fallback-with-html-webpack-plugin)\n  - [CKEditor from /libs/ckeditor](#ckeditor-from-libsckeditor)\n  - [CKEditor from node_modules](#ckeditor-from-node_modules)\n  - [Different output.publicPath in production](#different-outputpublicpath-in-production)\n  - [Maven](#maven)\n  - [.gitignore](#gitignore)\n\n## Getting Started\n\n![one] Make sure you have at least Node.js 6.13.1 and npm 5.2 installed:\n\n```sh\nnode -v\nnpm -v\n```\n\n![two] Create `package.json` and install frontend-app:\n\n```sh\nmkdir my-app\ncd my-app\nnpm init -y\nnpm install --save-dev frontend-app\n```\n\n![three] Install one of the [examples](#examples), have your app [entry point](#single-entry-srcentryjs)(s) in `src` directory and [`webpack.config.js`](#webpack-configuration) in place. Then build using:\n\n```sh\nnpm run build\n```\n\n## Commands\n\n##### init\n\nInitialize [example project](#examples).\n\n```sh\nnpx frontend-app init <example-name>\n```\n\n## Scripts\n\n##### build\n\nFiles are transpiled, bundled and minified to the `dist` directory and are ready to be served. Source maps are also generated.\n\nYou may pass additional arguments to [Webpack](https://webpack.github.io/docs/) using `--`. For example, don't show progress information:\n\n```\nnpm run build -- --progress false\n```\n\n##### dev\n\nBundle files to disk in watch mode (see [Livereload](#livereload)).\n\n##### dev-server\n\nBundle files in watch mode (see [Dev Server](#dev-server)).\n\n## Options\n\nYou may use `package.json` `config` field to set options. Example:\n\n```json\n{\n  \"name\": \"my-app\",\n  \"config\": {\n    \"frontendApp\": {\n      \"type\": \"react\",\n      \"port\": \"8080\",\n      \"devServer\": {\n        \"port\": \"8081\"\n      }\n    }\n  }\n}\n```\n\n##### type\n\n- **`react`**: Adds JSX support.\n- **`angular`**: Adds ng-annotate support.\n- **`all`**: Support JSX and ng-annotate. `ng-strict-di` is not supported in livereload mode.\n- **`slim`** **(default)**: Just ES2015. No React or Angular specific transformations.\n- **`portlet`**: Sets [`output.publicPath`](https://github.com/webpack/docs/wiki/Configuration#outputpublicpath) in Spring MVC Liferay plugin project built with Maven. `publicPath` is determined by `artifactId` in `pom.xml`.\n\nMultiple values are also supported. `package.json` `config.frontendApp` property example:\n\n```json\n{\n  \"type\": [\"angular\", \"portlet\"]\n}\n```\n\n##### intl\n\nSet `\"intl\": \"true\"` to use default list of available locales.\n\n##### intl.locales\n\nAvailable locales for [Moment.js](http://momentjs.com/), React Intl and [Intl](https://www.npmjs.com/package/intl). **Default:** `[\"fi\", \"sv\", \"en\"]` (When `\"intl\": \"true\"`).\n\n##### polyfills\n\nIncluded polyfills. **Default:** `[\"babel-polyfill\", \"whatwg-fetch\"]`. Set `\"false\"` to not include any polyfills.\n\n## React Intl helper Components\n\nMoved to [@visma/react-intl-helpers](https://www.npmjs.com/package/@visma/react-intl-helpers).\n\n## List of Preconfigured Loaders\n\n| Extension         | Loader                                                                                          |\n| ----------------- | ----------------------------------------------------------------------------------------------- |\n| **JS**            |                                                                                                 |\n| `.js`             | (ng-annotate-loader,) babel-loader                                                              |\n| **HTML**          |                                                                                                 |\n| `.html`           | raw-loader                                                                                      |\n| `.hbs`            | handlebars-template-loader                                                                      |\n| **Styles**        |                                                                                                 |\n| `.css`            | css-loader                                                                                      |\n| `.scss`           | sass-loader                                                                                     |\n| `.less`           | less-loader                                                                                     |\n| **Fonts & Media** |                                                                                                 |\n| `.woff`, `.woff2` | url-loader                                                                                      |\n| `.ttf`            | url-loader                                                                                      |\n| `.eot`            | file-loader                                                                                     |\n| `.svg`            | url-loader                                                                                      |\n| `.png`            | url-loader                                                                                      |\n| `.gif`            | file-loader                                                                                     |\n| `.jpg`            | file-loader                                                                                     |\n| **Other**         |                                                                                                 |\n| `.txt`            | raw-loader                                                                                      |\n| `.properties`     | [@visma/react-intl-helpers/cjs/loader](https://www.npmjs.com/package/@visma/react-intl-helpers) |\n\n### Livereload\n\nStart build process, watch changes and refresh browser automatically on changes.\n\n```sh\nnpm run dev\n```\n\nIf you wish to serve files from different directory while developing (i.e. server content base is elsewhere):\n\n```sh\nnpm run dev -- --output-path /some/other/content/base/dist\n```\n\n### Dev Server\n\nUse this for [Hot Module Replacement with React](#hot-module-replacement-with-react) or as an alternative to Livereload.\n\n```sh\nnpm run dev-server\n```\n\n### Single Entry (`src/index.js`)\n\n```\nmy-app/\n  dist/                                     // generated\n    bundle.aa4915533a5b5f53c072.css\n    bundle.aa4915533a5b5f53c072.css.map\n    bundle.aa4915533a5b5f53c072.js\n    bundle.aa4915533a5b5f53c072.js.map\n  src/\n    index.js                                // entry point\n    other.js\n  package.json\n```\n\n```html\n<link href=\"/dist/bundle.aa4915533a5b5f53c072.css\" rel=\"stylesheet\">\n<script src=\"/dist/bundle.aa4915533a5b5f53c072.js\"></script>\n```\n\n### Multiple Entries (`src/entries`)\n\n```\nmy-app/\n  dist/                                     // generated\n    commons.ee0ce0879c8b5aaefae4.css\n    commons.ee0ce0879c8b5aaefae4.css.map\n    commons.ee0ce0879c8b5aaefae4.js\n    commons.ee0ce0879c8b5aaefae4.js.map\n    entries/pageA/bundle.8036db3af1be1831e295.css\n    entries/pageA/bundle.8036db3af1be1831e295.css.map\n    entries/pageA/bundle.8036db3af1be1831e295.js\n    entries/pageA/bundle.8036db3af1be1831e295.js.map\n    entries/pageB/bundle.19596c286128bce14cf9.css\n    entries/pageB/bundle.19596c286128bce14cf9.css.map\n    entries/pageB/bundle.19596c286128bce14cf9.js\n    entries/pageB/bundle.19596c286128bce14cf9.js.map\n  src/\n    entries/                                // entry points e.g. for each page\n      pageA.js\n      pageB.js\n    other.js\n  package.json\n```\n\nYou must load commons bundle before the entry point. `pageA.html`:\n\n```html\n<link href=\"/dist/commons.ee0ce0879c8b5aaefae4.css\" rel=\"stylesheet\">\n<link href=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.css\" rel=\"stylesheet\">\n<script src=\"/dist/commons.ee0ce0879c8b5aaefae4.js\"></script>\n<script src=\"/dist/entries/pageA/bundle.8036db3af1be1831e295.js\"></script>\n```\n\n## Examples\n\n### React\n\n![one] Install example project with [**React Router**](https://reacttraining.com/react-router/), [**React-Bootstrap**](http://react-bootstrap.github.io/), Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\n\n```sh\nnpx frontend-app init react\n```\n\n![two] Start Webpack Dev Server:\n\n```sh\nnpm run dev-server\n```\n\n![three] Go to `http://localhost:8080/`.\n\n### React (multiple entries)\n\n![one] Install React example project for multi-portlet use, with Bootstrap 3 custom build, [**React Intl**](https://github.com/yahoo/react-intl) and mock API:\n\n```sh\nnpx frontend-app init react-multiple-entries\n```\n\n![two] Start Webpack Dev Server:\n\n```sh\nnpm run dev-server\n```\n\n![three] Go to `http://localhost:8080/`.\n\n### Angular\n\n![one] Install example project with **AngularUI Router** and **Bootstrap**:\n\n```sh\nnpx frontend-app init angular\n```\n\n![two] Start Webpack Dev Server:\n\n```sh\nnpm run dev-server\n```\n\n![three] Go to `http://localhost:8080/`.\n\n## Webpack Configuration\n\nProvide the built-in Webpack configuration. `webpack.config.js`:\n\n```js\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default;\n```\n\nOptionally merge own configuration. It will be merged into the built-in configuration using [webpack-merge](https://www.npmjs.com/package/webpack-merge) in `smartStrategy` mode:\n\n```js\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default.merge({\n  module: {\n    rules: [\n      {\n        test: /\\.js$/,\n        loader: \"babel-loader\",\n        include: join(process.cwd(), \"node_modules/my-lib\")\n      }\n    ]\n  },\n  output: {\n    publicPath: \"/dist/\"\n  }\n});\n```\n\nAnd/or customize the final configuration:\n\n```js\nmodule.exports = require(\"frontend-app/cjs/webpack/config\")\n  .default.merge({\n    output: {\n      publicPath: \"/dist/\"\n    }\n  })\n  .customize(config => {\n    // Edit entries.\n    config.entry[2] = join(config.entry[2], \"client\");\n    return config;\n  });\n```\n\n## Cookbook\n\n### [History API Fallback](https://webpack.github.io/docs/webpack-dev-server.html#the-historyapifallback-option) with [HTML Webpack Plugin](https://github.com/ampedandwired/html-webpack-plugin)\n\nSuppose there is no backend or it's on another machine, and you just need to test some frontend code with Webpack Dev Server.\n\n![one] Install dependencies:\n\n```sh\nnpm install --save-dev html-webpack-plugin\n```\n\n![two] Edit `webpack.config.js`:\n\n```js\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\n\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default.merge({\n  output: {\n    publicPath: \"/dist/\"\n  },\n  devServer: {\n    // Webpack Dev Server needs generated index.html in /dist directory for historyApiFallback to work.\n    historyApiFallback: { index: \"/dist/\" }\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      title: \"My App\"\n    })\n  ]\n});\n```\n\n### CKEditor from `/libs/ckeditor`\n\n![one] Install dependencies:\n\n```sh\nnpm install --save-dev html-webpack-plugin html-webpack-template\n```\n\n![two] Edit `webpack.config.js`:\n\n```js\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\n\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default.merge({\n  plugins: [\n    new HtmlWebpackPlugin({\n      inject: false,\n      template: require(\"html-webpack-template\"),\n      scripts: [\"/libs/ckeditor/ckeditor.js\"],\n      window: {\n        CKEDITOR_BASEPATH: \"/libs/ckeditor/\"\n      }\n    })\n  ]\n});\n```\n\n![three] Use `CKEDITOR` in your app:\n\n```js\n// CKEDITOR is available.\nwindow.CKEDITOR;\n```\n\n### CKEditor from `node_modules`\n\n![one] Install dependencies:\n\n```sh\nnpm install --save-dev html-webpack-plugin html-webpack-template ckeditor\n```\n\n![two] Edit `webpack.config.js`:\n\n```js\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\n\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default.merge({\n  plugins: [\n    new HtmlWebpackPlugin({\n      inject: false,\n      template: require(\"html-webpack-template\"),\n      window: {\n        CKEDITOR_BASEPATH: \"/node_modules/ckeditor/\"\n      }\n    })\n  ]\n});\n```\n\n![three] Use `CKEDITOR` in your app:\n\n```js\nimport \"ckeditor\";\n\n// CKEDITOR is available.\nwindow.CKEDITOR;\n```\n\n### Different `output.publicPath` in production\n\n`process.env.NODE_ENV` is set correctly. You may use `NODE_ENV`, and for example `process.env.npm_lifecycle_event` to customize your configuration. `webpack.config.js`:\n\n```js\nconst production = process.env.NODE_ENV === \"production\";\n// process.env.npm_lifecycle_event => \"build\" | \"dev\" | \"dev-server\"\n\nmodule.exports = require(\"frontend-app/cjs/webpack/config\").default.merge({\n  output: {\n    publicPath: production ? \"/somepath/dist/\" : \"/dist/\"\n  }\n});\n```\n\n### Maven\n\n![one] Install in `webapp` directory:\n\n```sh\ncd .../src/main/webapp\nnpm init\nnpm install --save-dev frontend-app\n```\n\n![two] Add build step to `pom.xml`:\n\n```xml\n<plugin>\n    <groupId>com.github.eirslett</groupId>\n    <artifactId>frontend-maven-plugin</artifactId>\n    <version>1.0</version>\n    <executions>\n        <execution>\n            <id>::install node and npm::</id>\n            <goals>\n                <goal>install-node-and-npm</goal>\n            </goals>\n        </execution>\n        <execution>\n            <id>::npm ci::</id>\n            <goals>\n                <goal>npm</goal>\n            </goals>\n            <configuration>\n                <arguments>ci</arguments>\n            </configuration>\n        </execution>\n        <execution>\n            <id>::npm run build::</id>\n            <goals>\n                <goal>npm</goal>\n            </goals>\n            <configuration>\n                <arguments>run build</arguments>\n            </configuration>\n        </execution>\n    </executions>\n    <configuration>\n        <nodeVersion>v8.12.0</nodeVersion>\n        <npmVersion>6.4.1</npmVersion>\n        <workingDirectory>src/main/webapp</workingDirectory>\n    </configuration>\n</plugin>\n```\n\n![three] Add exclude rules to `pom.xml`:\n\n```xml\n<plugin>\n\t<groupId>org.apache.maven.plugins</groupId>\n\t<artifactId>maven-war-plugin</artifactId>\n\t<configuration>\n\t\t<warSourceExcludes>src/,node/,node_modules/,package.json</warSourceExcludes>\n\t\t<webResources>\n\t\t\t<resource>\n\t\t\t\t<directory>src/main/webapp</directory>\n\t\t\t\t<filtering>false</filtering>\n\t\t\t\t<excludes>\n\t\t\t\t\t<exclude>src/**</exclude>\n\t\t\t\t\t<exclude>node/**</exclude>\n\t\t\t\t\t<exclude>node_modules/**</exclude>\n\t\t\t\t\t<exclude>package.json</exclude>\n\t\t\t\t</excludes>\n\t\t\t</resource>\n\t\t</webResources>\n\t</configuration>\n</plugin>\n```\n\n### `.gitignore`\n\n```\n/dist/\n/node_modules/\n```\n\n[one]: https://twemoji.maxcdn.com/16x16/31-20e3.png \"One\"\n[two]: https://twemoji.maxcdn.com/16x16/32-20e3.png \"Two\"\n[three]: https://twemoji.maxcdn.com/16x16/33-20e3.png \"Three\"\n[four]: https://twemoji.maxcdn.com/16x16/34-20e3.png \"Four\"\n[five]: https://twemoji.maxcdn.com/16x16/35-20e3.png \"Five\"\n","maintainers":[{"email":"arno.saine@vismaconsulting.fi","name":"visma_arnosaine"},{"email":"arno.saine@visma.com","name":"visma_bot"},{"email":"arno@mowhi.com","name":"arnosaine"},{"email":"juuso.korhonen@visma.com","name":"juusoko"}],"time":{"modified":"2022-06-18T03:45:42.646Z","created":"2016-07-29T14:38:13.971Z","0.1.0":"2016-07-29T14:38:13.971Z","0.1.1":"2016-07-29T14:53:27.726Z","0.1.2":"2016-07-29T16:11:47.076Z","0.1.3":"2016-08-02T06:14:14.713Z","0.1.4":"2016-08-02T15:06:36.270Z","0.2.0":"2016-08-04T16:24:43.523Z","0.2.1":"2016-08-05T11:11:14.772Z","0.2.2":"2016-08-08T12:19:31.340Z","0.2.4":"2016-08-08T14:23:29.480Z","0.2.5":"2016-08-10T11:09:22.251Z","0.2.6":"2016-08-12T08:33:59.587Z","0.2.7":"2016-08-12T13:00:18.145Z","0.3.0":"2016-08-16T15:48:36.728Z","0.3.1":"2016-08-17T16:01:27.862Z","0.4.0":"2016-08-19T16:51:51.019Z","0.4.1":"2016-08-25T15:46:48.928Z","0.4.2":"2016-08-29T16:05:11.579Z","0.4.3":"2016-09-02T17:55:29.200Z","0.4.4":"2016-09-07T13:44:22.690Z","0.4.5":"2016-09-08T07:36:54.781Z","0.4.6":"2016-09-09T13:12:56.414Z","0.4.7":"2016-09-19T08:42:23.078Z","0.4.8":"2016-09-23T14:15:25.991Z","0.4.9":"2016-09-26T09:15:05.064Z","0.4.10":"2016-12-30T13:30:26.397Z","0.5.0":"2017-01-10T16:52:06.121Z","0.5.1":"2017-01-18T11:48:05.082Z","0.6.0":"2017-01-31T17:08:32.203Z","0.6.1":"2017-02-02T14:39:57.387Z","0.6.2":"2017-02-24T13:57:29.186Z","0.6.3":"2017-03-06T14:32:03.615Z","0.6.4":"2017-04-13T19:34:12.895Z","0.7.0":"2017-04-18T16:24:20.244Z","0.7.1":"2017-05-05T13:41:34.464Z","0.8.0":"2017-07-10T15:15:30.095Z","0.8.1":"2017-07-19T13:58:51.318Z","1.0.0":"2017-08-15T07:19:25.533Z","1.1.0":"2017-09-27T06:59:48.342Z","1.2.0-0":"2017-10-07T19:10:08.024Z","1.2.0-1":"2017-10-20T16:42:02.109Z","1.2.0-beta.2":"2017-10-24T09:11:15.154Z","1.2.0-beta.3":"2017-11-14T13:11:26.706Z","1.2.0-beta.4":"2017-12-27T17:27:24.301Z","2.0.0-beta.0":"2018-03-12T18:52:13.298Z","2.0.0-beta.1":"2018-03-13T15:30:21.571Z","2.0.0-beta.2":"2018-03-18T10:37:16.284Z","1.2.0-beta.5":"2018-03-19T10:15:11.502Z","1.2.0-beta.6":"2018-03-19T11:26:41.299Z","2.0.0-beta.3":"2018-03-23T18:46:53.748Z","2.0.0-beta.4":"2018-05-18T11:27:15.784Z","2.0.0-rc.1":"2018-08-13T15:39:17.050Z","2.0.0-rc.2":"2018-08-24T16:23:46.403Z","2.0.0":"2018-08-29T11:47:06.181Z","2.1.0":"2018-10-12T16:03:36.080Z","2.2.0":"2018-11-05T13:13:36.146Z"},"author":{"name":"Arno Saine","email":"arno.saine@visma.com"},"license":"ISC","readmeFilename":"README.md","repository":{"type":"git","url":"https://gitlab.vismaconsulting.fi/arnosa/frontend-app"},"users":{"rshaw":true}}