diff --git a/package-lock.json b/package-lock.json index 341f204..4d5c109 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2759,6 +2759,80 @@ "semver": "^5.5.1" } }, + "@newrelic/publish-sourcemap": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@newrelic/publish-sourcemap/-/publish-sourcemap-4.4.1.tgz", + "integrity": "sha1-ixYzusIghmsUyUw+PPlQY73Xskc=", + "dev": true, + "requires": { + "superagent": "^3.4.1", + "yargs": "^6.6.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, "@newrelic/superagent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@newrelic/superagent/-/superagent-1.0.2.tgz", @@ -6785,6 +6859,12 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", + "dev": true + }, "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", @@ -10251,6 +10331,12 @@ "resolved": "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-3.0.0.tgz", "integrity": "sha512-zSgBjyO5Yo3TCfElJKqlSBGOEq8lZjltZAYqew4X5trf4AbH4sZhBesvywy7IpD1mfbu8JS6733V3zv3YdIW1g==" }, + "formidable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", + "dev": true + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -14829,6 +14915,15 @@ "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", "dev": true }, + "new-relic-source-map-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/new-relic-source-map-webpack-plugin/-/new-relic-source-map-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-evLeCEU6T2ir5ZWN79q2n9Rl94jv62O6XQvhl2vilsFDrUgDu5xzamwXQQtcvySE3gKcO34oozW1xFDp89IaMQ==", + "dev": true, + "requires": { + "@newrelic/publish-sourcemap": "^4.1.2" + } + }, "newrelic": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/newrelic/-/newrelic-5.5.0.tgz", @@ -21817,6 +21912,56 @@ } } }, + "superagent": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", + "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "dev": true, + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", diff --git a/package.json b/package.json index 1929587..bf9f093 100755 --- a/package.json +++ b/package.json @@ -100,6 +100,7 @@ "image-webpack-loader": "^4.2.0", "jest": "^22.4.0", "mini-css-extract-plugin": "^0.4.0", + "new-relic-source-map-webpack-plugin": "1.1.0", "node-sass": "^4.7.2", "postcss-loader": "^3.0.0", "react-dev-utils": "^5.0.0", diff --git a/webpack/webpack.prod.config.js b/webpack/webpack.prod.config.js index 7216743..f91ea1f 100755 --- a/webpack/webpack.prod.config.js +++ b/webpack/webpack.prod.config.js @@ -8,6 +8,7 @@ const CleanWebpackPlugin = require('clean-webpack-plugin'); const HtmlWebpackNewRelicPlugin = require('html-webpack-new-relic-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const NewRelicSourceMapPlugin = require('new-relic-source-map-webpack-plugin'); const WebpackRTLPlugin = require('webpack-rtl-plugin'); module.exports = Merge.smart(commonConfig, { @@ -160,6 +161,7 @@ module.exports = Merge.smart(commonConfig, { REDDIT_URL: null, APPLE_APP_STORE_URL: null, GOOGLE_PLAY_URL: null, + NEW_RELIC_ADMIN_KEY: null, NEW_RELIC_APP_ID: null, NEW_RELIC_LICENSE_KEY: null, }), @@ -170,5 +172,11 @@ module.exports = Merge.smart(commonConfig, { license: process.env.NEW_RELIC_LICENSE_KEY || 'fake_app', applicationID: process.env.NEW_RELIC_APP_ID || 'fake_license', }), + new NewRelicSourceMapPlugin({ + applicationId: process.env.NEW_RELIC_APP_ID, + nrAdminKey: process.env.NEW_RELIC_ADMIN_KEY, + staticAssetUrl: process.env.BASE_URL, + noop: typeof process.env.NEW_RELIC_ADMIN_KEY === 'undefined', // upload source maps in prod builds only + }), ], });