const config = require('../config'); const { getFxaConfig } = require('../fxa'); let sentry = ''; if (config.sentry_id) { //eslint-disable-next-line node/no-missing-require const version = require('../../dist/version.json'); sentry = ` var RAVEN_CONFIG = { release: '${version.version}', tags: { commit: '${version.commit}' }, dataCallback: function (data) { var hash = window.location.hash; if (hash) { return JSON.parse(JSON.stringify(data).replace(new RegExp(hash.slice(1), 'g'), '')); } return data; } } var SENTRY_ID = '${config.sentry_id}'; `; } let ga = ''; if (config.analytics_id) { ga = `var GOOGLE_ANALYTICS_ID = '${config.analytics_id}';`; } module.exports = async function(req, res) { const fxaConfig = await getFxaConfig(); fxaConfig.client_id = config.fxa_client_id; /* eslint-disable no-useless-escape */ const jsconfig = ` var isIE = /trident\\\/7\.|msie/i.test(navigator.userAgent); var isUnsupportedPage = /\\\/unsupported/.test(location.pathname); if (isIE && !isUnsupportedPage) { window.location.replace('/unsupported/ie'); } var LIMITS = { ANON: { MAX_FILE_SIZE: ${config.anon_max_file_size}, MAX_DOWNLOADS: ${config.anon_max_downloads}, MAX_EXPIRE_SECONDS: ${config.anon_max_expire_seconds}, }, MAX_FILE_SIZE: ${config.max_file_size}, MAX_DOWNLOADS: ${config.max_downloads}, MAX_EXPIRE_SECONDS: ${config.max_expire_seconds}, MAX_FILES_PER_ARCHIVE: ${config.max_files_per_archive}, MAX_ARCHIVES_PER_USER: ${config.max_archives_per_user} }; var DEFAULTS = { EXPIRE_SECONDS: ${config.default_expire_seconds} }; var AUTH_CONFIG = ${JSON.stringify(fxaConfig)}; ${ga} ${sentry} `; res.set('Content-Type', 'application/javascript'); res.send(jsconfig); };