diff --git a/package-lock.json b/package-lock.json index a9a4d4b1..0ae0bc20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -196,116 +196,6 @@ "@babel/types": "^7.0.0" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.2.tgz", - "integrity": "sha512-tdW8+V8ceh2US4GsYdNVNoohq5uVwOf9k6krjwW4E1lINcHgttnWcNqgdoessn12dAy8QkbezlbQh2nXISNY+A==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.2.3" - }, - "dependencies": { - "@babel/generator": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", - "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", - "dev": true, - "requires": { - "@babel/types": "^7.3.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "@babel/types": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", - "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-replace-supers": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", - "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.2.3", - "@babel/types": "^7.0.0" - } - }, - "@babel/parser": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", - "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", - "dev": true - }, - "@babel/traverse": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", - "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.10" - }, - "dependencies": { - "@babel/types": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", - "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, "@babel/helper-define-map": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", @@ -532,16 +422,6 @@ "@babel/plugin-syntax-async-generators": "^7.2.0" } }, - "@babel/plugin-proposal-class-properties": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.3.tgz", - "integrity": "sha512-XO9eeU1/UwGPM8L+TjnQCykuVcXqaO5J1bkRPIygqZ/A2L1xVMJ9aZXrY31c0U4H2/LHKL4lbFQLsxktSrc/Ng==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.3.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "@babel/plugin-proposal-json-strings": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", diff --git a/package.json b/package.json index 7ede97a3..888402ce 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,6 @@ "devDependencies": { "@babel/cli": "^7.1.5", "@babel/core": "^7.2.0", - "@babel/plugin-proposal-class-properties": "^7.3.3", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", "@babel/polyfill": "^7.0.0", "@babel/preset-env": "^7.2.0", diff --git a/server.js b/server.js index 90d20adb..f65a8a46 100644 --- a/server.js +++ b/server.js @@ -14,11 +14,12 @@ try { let currentApp; try { - const Server = require('./server/').default; + const Server = require('./server/'); currentApp = Server; const speech = new Server(); speech.start(); + } catch (error) { console.log('server startup error:', error); process.exit(1); diff --git a/server/chainquery/index.js b/server/chainquery/index.js index 9976a270..9211e29e 100644 --- a/server/chainquery/index.js +++ b/server/chainquery/index.js @@ -1,5 +1,5 @@ -import Sequelize from 'sequelize'; -import logger from 'winston'; +const Sequelize = require('sequelize'); +const logger = require('winston'); import abnormalClaimTable from './tables/abnormalClaimTable'; import addressTable from './tables/addressTable'; @@ -22,45 +22,51 @@ import transactionAddressQueries from './queries/transactionAddressQueries'; import transactionQueries from './queries/transactionQueries'; const DATABASE_STRUCTURE = { - abnormal_claim: { + 'abnormal_claim': { table: abnormalClaimTable, queries: abnormalClaimQueries, }, - address: { + 'address': { table: addressTable, queries: addressQueries, }, - block: { + 'block': { table: blockTable, queries: blockQueries, }, - claim: { + 'claim': { table: claimTable, queries: claimQueries, }, - input: { + 'input': { table: inputTable, queries: inputQueries, }, - output: { + 'output': { table: outputTable, queries: outputQueries, }, - support: { + 'support': { table: supportTable, queries: supportQueries, }, - transaction_address: { + 'transaction_address': { table: transactionAddressTable, queries: transactionAddressQueries, }, - transaction: { + 'transaction': { table: transactionTable, queries: transactionQueries, }, }; -const { host, port, database, username, password } = require('@config/chainqueryConfig'); +const { + host, + port, + database, + username, + password, +} = require('@config/chainqueryConfig'); if (!database || !username || !password) { logger.warn('missing database, user, or password from chainqueryConfig'); @@ -68,17 +74,17 @@ if (!database || !username || !password) { // set sequelize options const sequelize = new Sequelize(database, username, password, { - host: host, - import: port, - dialect: 'mysql', + host : host, + import : port, + dialect : 'mysql', dialectOptions: { decimalNumbers: true, }, logging: false, - pool: { - max: 5, - min: 0, - idle: 10000, + pool : { + max : 5, + min : 0, + idle : 10000, acquire: 10000, }, operatorsAliases: false, @@ -87,7 +93,7 @@ const sequelize = new Sequelize(database, username, password, { const db = {}; const DATABASE_STRUCTURE_KEYS = Object.keys(DATABASE_STRUCTURE); -for (let i = 0; i < DATABASE_STRUCTURE_KEYS.length; i++) { +for(let i = 0; i < DATABASE_STRUCTURE_KEYS.length; i++) { let dbKey = DATABASE_STRUCTURE_KEYS[i]; let currentData = DATABASE_STRUCTURE[dbKey]; diff --git a/server/controllers/api/blocked/index.js b/server/controllers/api/blocked/index.js index 57304c9a..aad2dfc2 100644 --- a/server/controllers/api/blocked/index.js +++ b/server/controllers/api/blocked/index.js @@ -1,5 +1,5 @@ -import logger from 'winston'; -import db from 'server/models'; +const logger = require('winston'); +const db = require('../../../models'); const updateBlockedList = (req, res) => { db.Blocked.refreshTable() @@ -19,4 +19,4 @@ const updateBlockedList = (req, res) => { }); }; -export default updateBlockedList; +module.exports = updateBlockedList; diff --git a/server/controllers/api/channel/availability/checkChannelAvailability.js b/server/controllers/api/channel/availability/checkChannelAvailability.js index aeba57af..3261c63f 100644 --- a/server/controllers/api/channel/availability/checkChannelAvailability.js +++ b/server/controllers/api/channel/availability/checkChannelAvailability.js @@ -1,17 +1,18 @@ -import db from 'server/models'; +const db = require('../../../../models'); -const checkChannelAvailability = name => { - return db.Channel.findAll({ - where: { - channelName: name, - }, - }) +const checkChannelAvailability = (name) => { + return db.Channel + .findAll({ + where: { + channelName: name, + }, + }) .then(result => { - return result.length <= 0; + return (result.length <= 0); }) .catch(error => { throw error; }); }; -export default checkChannelAvailability; +module.exports = checkChannelAvailability; diff --git a/server/controllers/api/channel/availability/index.js b/server/controllers/api/channel/availability/index.js index 5b410003..5e3d0995 100644 --- a/server/controllers/api/channel/availability/index.js +++ b/server/controllers/api/channel/availability/index.js @@ -1,6 +1,6 @@ -import checkChannelAvailability from './checkChannelAvailability.js'; -import { sendGATimingEvent } from '@serverutils/googleAnalytics.js'; -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; +const checkChannelAvailability = require('./checkChannelAvailability.js'); +const { sendGATimingEvent } = require('../../../../utils/googleAnalytics.js'); +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); /* @@ -8,7 +8,7 @@ import { handleErrorResponse } from '../../../utils/errorHandlers.js'; */ -function addAtSymbolIfNecessary(name) { +function addAtSymbolIfNecessary (name) { if (name.substring(0, 1) !== '@') { return `@${name}`; } @@ -22,7 +22,7 @@ const channelAvailability = ({ ip, originalUrl, params: { name } }, res) => { .then(isAvailable => { let responseObject = { success: true, - data: isAvailable, + data : isAvailable, }; if (isAvailable) { responseObject['message'] = `${name} is available`; @@ -37,4 +37,4 @@ const channelAvailability = ({ ip, originalUrl, params: { name } }, res) => { }); }; -export default channelAvailability; +module.exports = channelAvailability; diff --git a/server/controllers/api/channel/claims/getChannelClaims.js b/server/controllers/api/channel/claims/getChannelClaims.js index 488b3689..8b7eee60 100644 --- a/server/controllers/api/channel/claims/getChannelClaims.js +++ b/server/controllers/api/channel/claims/getChannelClaims.js @@ -1,7 +1,7 @@ -import chainquery from 'chainquery'; -import logger from 'winston'; -import getClaimData from 'server/utils/getClaimData'; -import { returnPaginatedChannelClaims } from './channelPagination.js'; +const chainquery = require('chainquery').default; +const logger = require('winston'); +const getClaimData = require('server/utils/getClaimData'); +const { returnPaginatedChannelClaims } = require('./channelPagination.js'); const getChannelClaims = async (channelName, channelLongId, page) => { logger.debug(`getChannelClaims: ${channelName}, ${channelLongId}, ${page}`); @@ -33,4 +33,4 @@ const getChannelClaims = async (channelName, channelLongId, page) => { return returnPaginatedChannelClaims(channelName, channelShortId, processedChannelClaims, page); }; -export default getChannelClaims; +module.exports = getChannelClaims; diff --git a/server/controllers/api/channel/claims/index.js b/server/controllers/api/channel/claims/index.js index b74d68ff..473394b2 100644 --- a/server/controllers/api/channel/claims/index.js +++ b/server/controllers/api/channel/claims/index.js @@ -1,5 +1,5 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import getChannelClaims from './getChannelClaims.js'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const getChannelClaims = require('./getChannelClaims.js'); const NO_CHANNEL = 'NO_CHANNEL'; @@ -16,7 +16,7 @@ const channelClaims = ({ ip, originalUrl, body, params }, res) => { const page = params.page; getChannelClaims(channelName, channelClaimId, page) .then(data => { - res.status(200).json({ success: true, data }); + res.status(200).json({success: true, data}); }) .catch(error => { if (error === NO_CHANNEL) { @@ -29,4 +29,4 @@ const channelClaims = ({ ip, originalUrl, body, params }, res) => { }); }; -export default channelClaims; +module.exports = channelClaims; diff --git a/server/controllers/api/channel/data/getChannelData.js b/server/controllers/api/channel/data/getChannelData.js index b30fd12e..97b49dad 100644 --- a/server/controllers/api/channel/data/getChannelData.js +++ b/server/controllers/api/channel/data/getChannelData.js @@ -1,25 +1,18 @@ -import db from 'server/models'; -import chainquery from 'chainquery'; +const db = require('server/models'); +const chainquery = require('chainquery').default; const getChannelData = async (channelName, channelClaimId) => { - let longChannelClaimId = await chainquery.claim.queries - .getLongClaimId(channelName, channelClaimId) - .catch(() => false); + let longChannelClaimId = await chainquery.claim.queries.getLongClaimId(channelName, channelClaimId).catch(() => false); if (!longChannelClaimId) { // Allow an error to throw here if this fails longChannelClaimId = await db.Certificate.getLongChannelId(channelName, channelClaimId); } - let shortChannelClaimId = await chainquery.claim.queries - .getShortClaimIdFromLongClaimId(longChannelClaimId, channelName) - .catch(() => false); + let shortChannelClaimId = await chainquery.claim.queries.getShortClaimIdFromLongClaimId(longChannelClaimId, channelName).catch(() => false); if (!shortChannelClaimId) { - shortChannelClaimId = await db.Certificate.getShortChannelIdFromLongChannelId( - longChannelClaimId, - channelName - ); + shortChannelClaimId = await db.Certificate.getShortChannelIdFromLongChannelId(longChannelClaimId, channelName); } return { @@ -29,4 +22,4 @@ const getChannelData = async (channelName, channelClaimId) => { }; }; -export default getChannelData; +module.exports = getChannelData; diff --git a/server/controllers/api/channel/data/index.js b/server/controllers/api/channel/data/index.js index 843c5510..612eb016 100644 --- a/server/controllers/api/channel/data/index.js +++ b/server/controllers/api/channel/data/index.js @@ -1,8 +1,7 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import getChannelData from './getChannelData.js'; -import isApprovedChannel from '@globalutils/isApprovedChannel'; -import { publishing } from '@config/siteConfig'; -const { serveOnlyApproved, approvedChannels } = publishing; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const getChannelData = require('./getChannelData.js'); +const isApprovedChannel = require('../../../../../utils/isApprovedChannel'); +const { publishing: { serveOnlyApproved, approvedChannels } } = require('@config/siteConfig'); const NO_CHANNEL = 'NO_CHANNEL'; const LONG_ID = 'longId'; @@ -21,9 +20,7 @@ const channelData = ({ ip, originalUrl, body, params }, res) => { if (channelClaimId === 'none') channelClaimId = null; const chanObj = {}; if (channelName) chanObj.name = channelName; - if (channelClaimId) { - chanObj[channelClaimId.length === LONG_CLAIM_LENGTH ? LONG_ID : SHORT_ID] = channelClaimId; - } + if (channelClaimId) chanObj[(channelClaimId.length === LONG_CLAIM_LENGTH ? LONG_ID : SHORT_ID)] = channelClaimId; if (serveOnlyApproved && !isApprovedChannel(chanObj, approvedChannels)) { return res.status(404).json({ success: false, @@ -49,4 +46,4 @@ const channelData = ({ ip, originalUrl, body, params }, res) => { }); }; -export default channelData; +module.exports = channelData; diff --git a/server/controllers/api/channel/shortId/index.js b/server/controllers/api/channel/shortId/index.js index 5bc7cd11..1c604688 100644 --- a/server/controllers/api/channel/shortId/index.js +++ b/server/controllers/api/channel/shortId/index.js @@ -1,6 +1,6 @@ -import { handleErrorResponse } from 'server/controllers/utils/errorHandlers.js'; -import db from 'server/models'; -import chainquery from 'chainquery'; +const { handleErrorResponse } = require('server/controllers/utils/errorHandlers.js'); +const db = require('server/models'); +const chainquery = require('chainquery').default; /* @@ -10,9 +10,7 @@ route to get a short channel id from long channel Id const channelShortIdRoute = async ({ ip, originalUrl, params }, res) => { try { - let shortId = await chainquery.claim.queries - .getShortClaimIdFromLongClaimId(params.longId, params.name) - .catch(() => false); + let shortId = await chainquery.claim.queries.getShortClaimIdFromLongClaimId(params.longId, params.name).catch(() => false); if (!shortId) { shortId = await db.Certificate.getShortChannelIdFromLongChannelId(params.longId, params.name); @@ -24,4 +22,4 @@ const channelShortIdRoute = async ({ ip, originalUrl, params }, res) => { } }; -export default channelShortIdRoute; +module.exports = channelShortIdRoute; diff --git a/server/controllers/api/claim/abandon/index.js b/server/controllers/api/claim/abandon/index.js index 6dd58b82..9226878d 100644 --- a/server/controllers/api/claim/abandon/index.js +++ b/server/controllers/api/claim/abandon/index.js @@ -1,9 +1,9 @@ -import logger from 'winston'; -import db from 'server/models'; -import chainquery from 'chainquery'; -import { abandonClaim } from 'server/lbrynet'; -import deleteFile from '../publish/deleteFile.js'; -import authenticateUser from '../publish/authentication.js'; +const logger = require('winston'); +const db = require('server/models'); +const chainquery = require('chainquery').default; +const { abandonClaim } = require('server/lbrynet'); +const deleteFile = require('../publish/deleteFile.js'); +const authenticateUser = require('../publish/authentication.js'); /* route to abandon a claim through the daemon @@ -47,4 +47,4 @@ const claimAbandon = async (req, res) => { } }; -export default claimAbandon; +module.exports = claimAbandon; diff --git a/server/controllers/api/claim/availability/checkClaimAvailability.js b/server/controllers/api/claim/availability/checkClaimAvailability.js index 39cca8cd..691cfae9 100644 --- a/server/controllers/api/claim/availability/checkClaimAvailability.js +++ b/server/controllers/api/claim/availability/checkClaimAvailability.js @@ -1,18 +1,16 @@ -import chainquery from 'chainquery'; -import Sequelize from 'sequelize'; - -import { publishing } from '@config/siteConfig'; -const { primaryClaimAddress, additionalClaimAddresses } = publishing; +const chainquery = require('chainquery').default; +const { publishing: { primaryClaimAddress, additionalClaimAddresses } } = require('@config/siteConfig'); +const Sequelize = require('sequelize'); const Op = Sequelize.Op; -const claimAvailability = async name => { +const claimAvailability = async (name) => { const claimAddresses = additionalClaimAddresses || []; claimAddresses.push(primaryClaimAddress); // find any records where the name is used return chainquery.claim .findAll({ attributes: ['claim_address'], - where: { + where : { name, claim_address: { [Op.or]: claimAddresses, @@ -20,11 +18,11 @@ const claimAvailability = async name => { }, }) .then(result => { - return result.length <= 0; + return (result.length <= 0); }) .catch(error => { throw error; }); }; -export default claimAvailability; +module.exports = claimAvailability; diff --git a/server/controllers/api/claim/availability/index.js b/server/controllers/api/claim/availability/index.js index 9ae1d5b0..d73e68e6 100644 --- a/server/controllers/api/claim/availability/index.js +++ b/server/controllers/api/claim/availability/index.js @@ -1,6 +1,6 @@ -import checkClaimAvailability from './checkClaimAvailability.js'; -import { sendGATimingEvent } from '../../../../utils/googleAnalytics.js'; -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; +const checkClaimAvailability = require('./checkClaimAvailability.js'); +const { sendGATimingEvent } = require('../../../../utils/googleAnalytics.js'); +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); /* @@ -14,7 +14,7 @@ const claimAvailability = ({ ip, originalUrl, params: { name } }, res) => { .then(isAvailable => { let responseObject = { success: true, - data: isAvailable, + data : isAvailable, }; if (isAvailable) { responseObject['message'] = `That claim name is available`; @@ -29,4 +29,4 @@ const claimAvailability = ({ ip, originalUrl, params: { name } }, res) => { }); }; -export default claimAvailability; +module.exports = claimAvailability; diff --git a/server/controllers/api/claim/data/index.js b/server/controllers/api/claim/data/index.js index 33846f41..e0147850 100644 --- a/server/controllers/api/claim/data/index.js +++ b/server/controllers/api/claim/data/index.js @@ -1,7 +1,7 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import getClaimData from 'server/utils/getClaimData'; -import fetchClaimData from 'server/utils/fetchClaimData'; -import logger from 'winston'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const getClaimData = require('server/utils/getClaimData'); +const fetchClaimData = require('server/utils/fetchClaimData'); +const logger = require('winston'); /* route to return data for a claim @@ -28,4 +28,4 @@ const claimData = async ({ ip, originalUrl, body, params }, res) => { } }; -export default claimData; +module.exports = claimData; diff --git a/server/controllers/api/claim/get/index.js b/server/controllers/api/claim/get/index.js index 883a0bc8..248c6e80 100644 --- a/server/controllers/api/claim/get/index.js +++ b/server/controllers/api/claim/get/index.js @@ -1,13 +1,13 @@ -import { createFileRecordDataAfterGet } from 'server/models/utils/createFileRecordData.js'; -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import getClaimData from 'server/utils/getClaimData'; -import chainquery from 'chainquery'; -import db from 'server/models'; -import logger from 'winston'; -import awaitFileSize from 'server/utils/awaitFileSize'; -import isBot from 'isbot'; -import publishCache from 'server/utils/publishCache'; const { getClaim, resolveUri } = require('server/lbrynet'); +const { createFileRecordDataAfterGet } = require('server/models/utils/createFileRecordData.js'); +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const getClaimData = require('server/utils/getClaimData'); +const chainquery = require('chainquery').default; +const db = require('server/models'); +const logger = require('winston'); +const awaitFileSize = require('server/utils/awaitFileSize'); +const isBot = require('isbot'); +const publishCache = require('server/utils/publishCache'); const RETRY_MS = 250; const TIMEOUT_MS = 15000; @@ -83,4 +83,4 @@ const claimGet = async ({ ip, originalUrl, params, headers }, res) => { handleErrorResponse(originalUrl, ip, error, res); } }; -export default claimGet; +module.exports = claimGet; diff --git a/server/controllers/api/claim/list/index.js b/server/controllers/api/claim/list/index.js index 94ad3ee0..bb7eb1d0 100644 --- a/server/controllers/api/claim/list/index.js +++ b/server/controllers/api/claim/list/index.js @@ -1,5 +1,5 @@ -import { getClaimList } from 'server/lbrynet'; -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; +const { getClaimList } = require('../../../../lbrynet'); +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); /* @@ -17,4 +17,4 @@ const claimList = ({ ip, originalUrl, params }, res) => { }); }; -export default claimList; +module.exports = claimList; diff --git a/server/controllers/api/claim/longId/index.js b/server/controllers/api/claim/longId/index.js index dec98220..0e6ceefd 100644 --- a/server/controllers/api/claim/longId/index.js +++ b/server/controllers/api/claim/longId/index.js @@ -1,10 +1,10 @@ -import db from 'server/models'; -import chainquery from 'chainquery'; -import logger from 'winston'; -import publishCache from 'server/utils/publishCache'; -import { handleErrorResponse } from 'server/controllers/utils/errorHandlers.js'; +const db = require('server/models'); +const chainquery = require('chainquery').default; +const logger = require('winston'); +const publishCache = require('server/utils/publishCache'); +const { handleErrorResponse } = require('server/controllers/utils/errorHandlers.js'); -import getClaimId from 'server/controllers/utils/getClaimId.js'; +const getClaimId = require('server/controllers/utils/getClaimId.js'); const NO_CHANNEL = 'NO_CHANNEL'; const NO_CLAIM = 'NO_CLAIM'; @@ -72,4 +72,4 @@ const claimLongId = ({ ip, originalUrl, body, params }, res) => { }); }; -export default claimLongId; +module.exports = claimLongId; diff --git a/server/controllers/api/claim/publish/authentication.js b/server/controllers/api/claim/publish/authentication.js index 81b0cdfd..7464e294 100644 --- a/server/controllers/api/claim/publish/authentication.js +++ b/server/controllers/api/claim/publish/authentication.js @@ -1,5 +1,5 @@ -import logger from 'winston'; -import db from 'server/models'; +const logger = require('winston'); +const db = require('../../../../models'); const authenticateChannelCredentials = (channelName, channelId, userPassword) => { return new Promise((resolve, reject) => { @@ -10,9 +10,10 @@ const authenticateChannelCredentials = (channelName, channelId, userPassword) => if (channelName) channelFindParams['channelName'] = channelName; if (channelId) channelFindParams['channelClaimId'] = channelId; // find the channel - db.Channel.findOne({ - where: channelFindParams, - }) + db.Channel + .findOne({ + where: channelFindParams, + }) .then(channel => { if (!channel) { logger.debug('no channel found'); @@ -50,7 +51,7 @@ const authenticateUser = (channelName, channelId, channelPassword, user) => { // case: no channelName or channel Id are provided (anonymous), regardless of whether user token is provided if (!channelName && !channelId) { resolve({ - channelName: null, + channelName : null, channelClaimId: null, }); return; @@ -66,7 +67,7 @@ const authenticateUser = (channelName, channelId, channelPassword, user) => { return; } resolve({ - channelName: user.channelName, + channelName : user.channelName, channelClaimId: user.channelClaimId, }); return; @@ -80,4 +81,4 @@ const authenticateUser = (channelName, channelId, channelPassword, user) => { }); }; -export default authenticateUser; +module.exports = authenticateUser; diff --git a/server/controllers/api/claim/publish/createPublishParams.js b/server/controllers/api/claim/publish/createPublishParams.js index 73209d4e..0a51cba8 100644 --- a/server/controllers/api/claim/publish/createPublishParams.js +++ b/server/controllers/api/claim/publish/createPublishParams.js @@ -1,5 +1,5 @@ -import logger from 'winston'; -import { details, publishing } from '@config/siteConfig'; +const logger = require('winston'); +const { details, publishing } = require('@config/siteConfig'); const createPublishParams = ( filePath, name, @@ -59,4 +59,4 @@ const createPublishParams = ( return publishParams; }; -export default createPublishParams; +module.exports = createPublishParams; diff --git a/server/controllers/api/claim/publish/createThumbnailPublishParams.js b/server/controllers/api/claim/publish/createThumbnailPublishParams.js index 2912b292..a848aab5 100644 --- a/server/controllers/api/claim/publish/createThumbnailPublishParams.js +++ b/server/controllers/api/claim/publish/createThumbnailPublishParams.js @@ -1,5 +1,5 @@ -import logger from 'winston'; -import { details, publishing } from '@config/siteConfig'; +const logger = require('winston'); +const { details, publishing } = require('@config/siteConfig'); const createThumbnailPublishParams = (thumbnailFilePath, claimName, license, licenseUrl, nsfw) => { if (!thumbnailFilePath) { @@ -26,4 +26,4 @@ const createThumbnailPublishParams = (thumbnailFilePath, claimName, license, lic }; }; -export default createThumbnailPublishParams; +module.exports = createThumbnailPublishParams; diff --git a/server/controllers/api/claim/publish/deleteFile.js b/server/controllers/api/claim/publish/deleteFile.js index 8c98d89f..2d9fe69f 100644 --- a/server/controllers/api/claim/publish/deleteFile.js +++ b/server/controllers/api/claim/publish/deleteFile.js @@ -1,7 +1,7 @@ -import logger from 'winston'; -import fs from 'fs'; +const logger = require('winston'); +const fs = require('fs'); -const deleteFile = filePath => { +const deleteFile = (filePath) => { fs.unlink(filePath, err => { if (err) { return logger.error(`error deleting temporary file ${filePath}`); @@ -10,4 +10,4 @@ const deleteFile = filePath => { }); }; -export default deleteFile; +module.exports = deleteFile; diff --git a/server/controllers/api/claim/publish/index.js b/server/controllers/api/claim/publish/index.js index eb1876af..2cbb555b 100644 --- a/server/controllers/api/claim/publish/index.js +++ b/server/controllers/api/claim/publish/index.js @@ -1,33 +1,30 @@ -import logger from 'winston'; +const logger = require('winston'); -import { sendGATimingEvent } from 'server/utils/googleAnalytics.js'; - -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; - -import checkClaimAvailability from '../availability/checkClaimAvailability.js'; - -import publish from './publish.js'; -import createPublishParams from './createPublishParams.js'; -import createThumbnailPublishParams from './createThumbnailPublishParams.js'; -import parsePublishApiRequestBody from './parsePublishApiRequestBody.js'; -import parsePublishApiRequestFiles from './parsePublishApiRequestFiles.js'; -import authenticateUser from './authentication.js'; - -import chainquery from 'chainquery'; -import publishCache from 'server/utils/publishCache'; -import isApprovedChannel from '@globalutils/isApprovedChannel'; -import { details, publishing } from '@config/siteConfig'; - -import createCanonicalLink from '@globalutils/createCanonicalLink'; -const { host } = details; const { - disabled, - disabledMessage, - publishOnlyApproved, - approvedChannels, - thumbnailChannel, - thumbnailChannelId, -} = publishing; + details: { host }, + publishing: { disabled, disabledMessage }, +} = require('@config/siteConfig'); + +const { sendGATimingEvent } = require('server/utils/googleAnalytics.js'); +const isApprovedChannel = require('@globalutils/isApprovedChannel'); +const { + publishing: { publishOnlyApproved, approvedChannels, thumbnailChannel, thumbnailChannelId }, +} = require('@config/siteConfig'); + +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); + +const checkClaimAvailability = require('../availability/checkClaimAvailability.js'); + +const publish = require('./publish.js'); +const createPublishParams = require('./createPublishParams.js'); +const createThumbnailPublishParams = require('./createThumbnailPublishParams.js'); +const parsePublishApiRequestBody = require('./parsePublishApiRequestBody.js'); +const parsePublishApiRequestFiles = require('./parsePublishApiRequestFiles.js'); +const authenticateUser = require('./authentication.js'); + +const chainquery = require('chainquery').default; +const createCanonicalLink = require('@globalutils/createCanonicalLink'); +const publishCache = require('server/utils/publishCache'); const CLAIM_TAKEN = 'CLAIM_TAKEN'; const UNAPPROVED_CHANNEL = 'UNAPPROVED_CHANNEL'; @@ -221,4 +218,4 @@ const claimPublish = ({ body, files, headers, ip, originalUrl, user, tor }, res) }); }; -export default claimPublish; +module.exports = claimPublish; diff --git a/server/controllers/api/claim/publish/parsePublishApiRequestBody.js b/server/controllers/api/claim/publish/parsePublishApiRequestBody.js index 8a40e342..f98c3369 100644 --- a/server/controllers/api/claim/publish/parsePublishApiRequestBody.js +++ b/server/controllers/api/claim/publish/parsePublishApiRequestBody.js @@ -36,4 +36,4 @@ const parsePublishApiRequestBody = ({ }; }; -export default parsePublishApiRequestBody; +module.exports = parsePublishApiRequestBody; diff --git a/server/controllers/api/claim/publish/parsePublishApiRequestBody.test.js b/server/controllers/api/claim/publish/parsePublishApiRequestBody.test.js index 8e559958..e1a43c99 100644 --- a/server/controllers/api/claim/publish/parsePublishApiRequestBody.test.js +++ b/server/controllers/api/claim/publish/parsePublishApiRequestBody.test.js @@ -1,14 +1,14 @@ -import chai from 'chai'; +const chai = require('chai'); const expect = chai.expect; -describe('#parsePublishApiRequestBody()', function() { +describe('#parsePublishApiRequestBody()', function () { const parsePublishApiRequestBody = require('./parsePublishApiRequestBody.js'); - it('should throw an error if no body', function() { + it('should throw an error if no body', function () { expect(parsePublishApiRequestBody.bind(this, null)).to.throw(); }); - it('should throw an error if no body.name', function() { + it('should throw an error if no body.name', function () { const bodyNoName = {}; expect(parsePublishApiRequestBody.bind(this, bodyNoName)).to.throw(); }); diff --git a/server/controllers/api/claim/publish/parsePublishApiRequestFiles.js b/server/controllers/api/claim/publish/parsePublishApiRequestFiles.js index b59ba8f8..6979740e 100644 --- a/server/controllers/api/claim/publish/parsePublishApiRequestFiles.js +++ b/server/controllers/api/claim/publish/parsePublishApiRequestFiles.js @@ -1,6 +1,6 @@ -import path from 'path'; -import validateFileTypeAndSize from './validateFileTypeAndSize.js'; -import validateFileForPublish from './validateFileForPublish.js'; +const path = require('path'); +const validateFileTypeAndSize = require('./validateFileTypeAndSize.js'); +const validateFileForPublish = require('./validateFileForPublish.js'); const parsePublishApiRequestFiles = ({ file, thumbnail }, isUpdate) => { // make sure a file was provided @@ -59,4 +59,4 @@ const parsePublishApiRequestFiles = ({ file, thumbnail }, isUpdate) => { return obj; }; -export default parsePublishApiRequestFiles; +module.exports = parsePublishApiRequestFiles; diff --git a/server/controllers/api/claim/publish/parsePublishApiRequestFiles.test.js b/server/controllers/api/claim/publish/parsePublishApiRequestFiles.test.js index 49b704e6..2eb7733d 100644 --- a/server/controllers/api/claim/publish/parsePublishApiRequestFiles.test.js +++ b/server/controllers/api/claim/publish/parsePublishApiRequestFiles.test.js @@ -1,19 +1,19 @@ -import chai from 'chai'; +const chai = require('chai'); const expect = chai.expect; -describe('#parsePublishApiRequestFiles()', function() { +describe('#parsePublishApiRequestFiles()', function () { const parsePublishApiRequestFiles = require('./parsePublishApiRequestFiles.js'); - it('should throw an error if no files', function() { + it('should throw an error if no files', function () { expect(parsePublishApiRequestFiles.bind(this, null)).to.throw(); }); - it('should throw an error if no files.file', function() { + it('should throw an error if no files.file', function () { const filesNoFile = {}; expect(parsePublishApiRequestFiles.bind(this, filesNoFile)).to.throw(); }); - it('should throw an error if file.size is too large', function() { + it('should throw an error if file.size is too large', function () { const filesTooBig = { file: { name: 'file.jpg', @@ -25,7 +25,7 @@ describe('#parsePublishApiRequestFiles()', function() { expect(parsePublishApiRequestFiles.bind(this, filesTooBig)).to.throw(); }); - it('should throw error if not an accepted file type', function() { + it('should throw error if not an accepted file type', function () { const filesWrongType = { file: { name: 'file.jpg', @@ -37,7 +37,7 @@ describe('#parsePublishApiRequestFiles()', function() { expect(parsePublishApiRequestFiles.bind(this, filesWrongType)).to.throw(); }); - it('should throw NO error if no problems', function() { + it('should throw NO error if no problems', function () { const filesNoProblems = { file: { name: 'file.jpg', diff --git a/server/controllers/api/claim/publish/publish.js b/server/controllers/api/claim/publish/publish.js index 2670a308..d97b5073 100644 --- a/server/controllers/api/claim/publish/publish.js +++ b/server/controllers/api/claim/publish/publish.js @@ -1,9 +1,11 @@ -import logger from 'winston'; -import db from '../../../../models'; -import { publishClaim } from '../../../../lbrynet'; -import { createFileRecordDataAfterPublish } from '../../../../models/utils/createFileRecordData.js'; -import { createClaimRecordDataAfterPublish } from '../../../../models/utils/createClaimRecordData.js'; -import deleteFile from './deleteFile.js'; +const logger = require('winston'); +const db = require('../../../../models'); +const { publishClaim } = require('../../../../lbrynet'); +const { createFileRecordDataAfterPublish } = require('server/models/utils/createFileRecordData.js'); +const { + createClaimRecordDataAfterPublish, +} = require('server/models/utils/createClaimRecordData.js'); +const deleteFile = require('./deleteFile.js'); const publish = async (publishParams, fileName, fileType) => { let publishResults; @@ -78,4 +80,5 @@ const publish = async (publishParams, fileName, fileType) => { }; } }; -export default publish; + +module.exports = publish; diff --git a/server/controllers/api/claim/publish/validateFileForPublish.js b/server/controllers/api/claim/publish/validateFileForPublish.js index dbb63a1a..1047c048 100644 --- a/server/controllers/api/claim/publish/validateFileForPublish.js +++ b/server/controllers/api/claim/publish/validateFileForPublish.js @@ -1,6 +1,6 @@ -import logger from 'winston'; +const logger = require('winston'); -import { publishing } from '@config/siteConfig.json'; +const { publishing } = require('@config/siteConfig.json'); const { fileSizeLimits } = publishing; @@ -35,4 +35,4 @@ const validateFileForPublish = file => { return file; }; -export default validateFileForPublish; +module.exports = validateFileForPublish; diff --git a/server/controllers/api/claim/publish/validateFileTypeAndSize.js b/server/controllers/api/claim/publish/validateFileTypeAndSize.js index 160f19bc..997e6710 100644 --- a/server/controllers/api/claim/publish/validateFileTypeAndSize.js +++ b/server/controllers/api/claim/publish/validateFileTypeAndSize.js @@ -1,4 +1,4 @@ -import logger from 'winston'; +const logger = require('winston'); const { publishing: { maxSizeImage = 10000000, maxSizeGif = 50000000, maxSizeVideo = 50000000 }, @@ -41,4 +41,4 @@ const validateFileTypeAndSize = file => { return file; }; -export default validateFileTypeAndSize; +module.exports = validateFileTypeAndSize; diff --git a/server/controllers/api/claim/resolve/index.js b/server/controllers/api/claim/resolve/index.js index ab54cf1f..9b057bda 100644 --- a/server/controllers/api/claim/resolve/index.js +++ b/server/controllers/api/claim/resolve/index.js @@ -1,5 +1,5 @@ -import { resolveUri } from 'server/lbrynet/index'; -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; +const { resolveUri } = require('../../../../lbrynet/index'); +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); /* @@ -17,4 +17,4 @@ const claimResolve = ({ headers, ip, originalUrl, params }, res) => { }); }; -export default claimResolve; +module.exports = claimResolve; diff --git a/server/controllers/api/claim/shortId/index.js b/server/controllers/api/claim/shortId/index.js index c627bc49..2d62bbe7 100644 --- a/server/controllers/api/claim/shortId/index.js +++ b/server/controllers/api/claim/shortId/index.js @@ -1,5 +1,5 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import chainquery from 'chainquery'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const chainquery = require('chainquery').default; /* @@ -22,4 +22,4 @@ const claimShortId = async ({ ip, originalUrl, body, params }, res) => { } }; -export default claimShortId; +module.exports = claimShortId; diff --git a/server/controllers/api/claim/update/index.js b/server/controllers/api/claim/update/index.js index d2b2b668..6ca73f3a 100644 --- a/server/controllers/api/claim/update/index.js +++ b/server/controllers/api/claim/update/index.js @@ -1,20 +1,21 @@ -import logger from 'winston'; -import { sendGATimingEvent } from '@serverutils/googleAnalytics.js'; -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import publish from '../publish/publish.js'; -import parsePublishApiRequestBody from '../publish/parsePublishApiRequestBody'; -import parsePublishApiRequestFiles from '../publish/parsePublishApiRequestFiles.js'; -import authenticateUser from '../publish/authentication.js'; -import createThumbnailPublishParams from '../publish/createThumbnailPublishParams.js'; -import chainquery from 'chainquery'; -import { getFileListFileByOutpoint } from 'server/lbrynet'; -import publishCache from 'server/utils/publishCache'; -import createCanonicalLink from '@globalutils/createCanonicalLink'; -import isApprovedChannel from '@globalutils/isApprovedChannel'; -import { details, publishing } from '@config/siteConfig'; -const { disabled, disabledMessage, primaryClaimAddress } = publishing; - -//, approvedChannels, thumbnailChannel, thumbnailChannelId +const logger = require('winston'); +const db = require('server/models'); +const { + details, + publishing: { disabled, disabledMessage, primaryClaimAddress }, +} = require('@config/siteConfig'); +const { resolveUri } = require('server/lbrynet'); +const { sendGATimingEvent } = require('../../../../utils/googleAnalytics.js'); +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const publish = require('../publish/publish.js'); +const parsePublishApiRequestBody = require('../publish/parsePublishApiRequestBody'); +const parsePublishApiRequestFiles = require('../publish/parsePublishApiRequestFiles.js'); +const authenticateUser = require('../publish/authentication.js'); +const createThumbnailPublishParams = require('../publish/createThumbnailPublishParams.js'); +const chainquery = require('chainquery').default; +const createCanonicalLink = require('@globalutils/createCanonicalLink'); +const { getFileListFileByOutpoint } = require('server/lbrynet'); +const publishCache = require('server/utils/publishCache'); /* route to update a claim through the daemon @@ -241,4 +242,4 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res) }); }; -export default claimUpdate; +module.exports = claimUpdate; diff --git a/server/controllers/api/claim/views/index.js b/server/controllers/api/claim/views/index.js index b85a4775..11e6500b 100644 --- a/server/controllers/api/claim/views/index.js +++ b/server/controllers/api/claim/views/index.js @@ -1,5 +1,5 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import db from 'server/models'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const db = require('server/models'); /* @@ -16,7 +16,7 @@ const claimViews = async ({ ip, originalUrl, body, params }, res) => { res.status(200).json({ success: true, - data: { + data : { [claimId]: viewCount, }, }); @@ -25,4 +25,4 @@ const claimViews = async ({ ip, originalUrl, body, params }, res) => { } }; -export default claimViews; +module.exports = claimViews; diff --git a/server/controllers/api/config/site/publishing/index.js b/server/controllers/api/config/site/publishing/index.js index a87b1a29..31c73160 100644 --- a/server/controllers/api/config/site/publishing/index.js +++ b/server/controllers/api/config/site/publishing/index.js @@ -1,14 +1,12 @@ -const { - publishing: { - primaryClaimAddress, - uploadDirectory, - thumbnailChannel, - thumbnailChannelId, - additionalClaimAddresses, - disabled, - disabledMessage, - }, -} = require('@config/siteConfig'); +const { publishing: { + primaryClaimAddress, + uploadDirectory, + thumbnailChannel, + thumbnailChannelId, + additionalClaimAddresses, + disabled, + disabledMessage, +} } = require('@config/siteConfig'); /* @@ -28,4 +26,4 @@ const publishingConfig = (req, res) => { }); }; -export default publishingConfig; +module.exports = publishingConfig; diff --git a/server/controllers/api/file/availability/index.js b/server/controllers/api/file/availability/index.js index d5cb27a2..a6f2e6cd 100644 --- a/server/controllers/api/file/availability/index.js +++ b/server/controllers/api/file/availability/index.js @@ -1,10 +1,10 @@ -import logger from 'winston'; +const logger = require('winston'); -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import { getFileListFileByOutpoint } from 'server/lbrynet'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const { getFileListFileByOutpoint } = require('server/lbrynet'); -import chainquery from 'chainquery'; -import publishCache from 'server/utils/publishCache'; +const chainquery = require('chainquery').default; +const publishCache = require('server/utils/publishCache'); /* @@ -37,4 +37,4 @@ const fileAvailability = async ({ ip, originalUrl, params }, res) => { } }; -export default fileAvailability; +module.exports = fileAvailability; diff --git a/server/controllers/api/homepage/data/getChannelData.js b/server/controllers/api/homepage/data/getChannelData.js index 260a9b0b..a0db2374 100644 --- a/server/controllers/api/homepage/data/getChannelData.js +++ b/server/controllers/api/homepage/data/getChannelData.js @@ -1,13 +1,16 @@ -import db from 'server/models'; +const db = require('../../../../models'); const getChannelData = (channelName, channelClaimId) => { return new Promise((resolve, reject) => { let longChannelClaimId; // 1. get the long channel Id (make sure channel exists) - db.Certificate.getLongChannelId(channelName, channelClaimId) + db.Certificate + .getLongChannelId(channelName, channelClaimId) .then(fullClaimId => { longChannelClaimId = fullClaimId; - return db.Certificate.getShortChannelIdFromLongChannelId(fullClaimId, channelName); + return db + .Certificate + .getShortChannelIdFromLongChannelId(fullClaimId, channelName); }) .then(shortChannelClaimId => { resolve({ @@ -22,4 +25,4 @@ const getChannelData = (channelName, channelClaimId) => { }); }; -export default getChannelData; +module.exports = getChannelData; diff --git a/server/controllers/api/homepage/data/index.js b/server/controllers/api/homepage/data/index.js index 015dec65..610f1cb5 100644 --- a/server/controllers/api/homepage/data/index.js +++ b/server/controllers/api/homepage/data/index.js @@ -1,6 +1,6 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); -import getChannelData from './getChannelData.js'; +const getChannelData = require('./getChannelData.js'); const NO_CHANNEL = 'NO_CHANNEL'; @@ -32,4 +32,4 @@ const channelData = ({ ip, originalUrl, body, params }, res) => { }); }; -export default channelData; +module.exports = channelData; diff --git a/server/controllers/api/oEmbed/getOEmbedDataForAsset.js b/server/controllers/api/oEmbed/getOEmbedDataForAsset.js index 317f300b..bcdd1727 100644 --- a/server/controllers/api/oEmbed/getOEmbedDataForAsset.js +++ b/server/controllers/api/oEmbed/getOEmbedDataForAsset.js @@ -1,10 +1,11 @@ -import logger from 'winston'; -import db from 'server/models'; -import getClaimId from '../../utils/getClaimId'; -import publishCache from 'server/utils/publishCache'; +const logger = require('winston'); +const db = require('../../../models'); +const getClaimId = require('../../utils/getClaimId'); +const publishCache = require('server/utils/publishCache'); -import { details } from '@config/siteConfig'; -const { host, title: siteTitle } = details; +const { + details: { host, title: siteTitle }, +} = require('@config/siteConfig'); const getOEmbedDataForAsset = (channelName, channelClaimId, claimName, claimId) => { let fileData, claimData; @@ -65,4 +66,4 @@ const getOEmbedDataForAsset = (channelName, channelClaimId, claimName, claimId) }); }; -export default getOEmbedDataForAsset; +module.exports = getOEmbedDataForAsset; diff --git a/server/controllers/api/oEmbed/getOEmbedDataForChannel.js b/server/controllers/api/oEmbed/getOEmbedDataForChannel.js index a3d24ec3..8f2afab3 100644 --- a/server/controllers/api/oEmbed/getOEmbedDataForChannel.js +++ b/server/controllers/api/oEmbed/getOEmbedDataForChannel.js @@ -1,26 +1,33 @@ -import db from 'server/models'; -import { details } from '@config/siteConfig'; -const { host, title: siteTitle } = details; +const db = require('../../../models'); + +const { + details: { + host, + title: siteTitle, + }, +} = require('@config/siteConfig'); const getOEmbedDataForChannel = (channelName, channelClaimId) => { - return db.Certificate.findOne({ - where: { - name: channelName, - claimId: channelClaimId, - }, - }).then(certificateRecord => { - const certificateData = certificateRecord.dataValues; - return { - version: 1.0, - provider_name: siteTitle, - provider_url: host, - type: 'link', - author_name: certificateData.name, - title: `${certificateData.name}'s channel on Spee.ch`, - author_url: `${host}/${certificateData.name}:${certificateData.claimId}`, - cache_age: 86400, // one day in seconds - }; - }); + return db.Certificate + .findOne({ + where: { + name : channelName, + claimId: channelClaimId, + }, + }) + .then(certificateRecord => { + const certificateData = certificateRecord.dataValues; + return { + version : 1.0, + provider_name: siteTitle, + provider_url : host, + type : 'link', + author_name : certificateData.name, + title : `${certificateData.name}'s channel on Spee.ch`, + author_url : `${host}/${certificateData.name}:${certificateData.claimId}`, + cache_age : 86400, // one day in seconds + }; + }); }; -export default getOEmbedDataForChannel; +module.exports = getOEmbedDataForChannel; diff --git a/server/controllers/api/oEmbed/index.js b/server/controllers/api/oEmbed/index.js index 256c29d1..690b1fa0 100644 --- a/server/controllers/api/oEmbed/index.js +++ b/server/controllers/api/oEmbed/index.js @@ -1,14 +1,12 @@ -import logger from 'winston'; -import lbryUri from '@globalutils/lbryUri'; +const logger = require('winston'); +const lbryUri = require('../../../../utils/lbryUri'); -import getOEmbedDataForChannel from './getOEmbedDataForChannel'; -import getOEmbedDataForAsset from './getOEmbedDataForAsset'; -import parseSpeechUrl from './parseSpeechUrl'; +const getOEmbedDataForChannel = require('./getOEmbedDataForChannel'); +const getOEmbedDataForAsset = require('./getOEmbedDataForAsset'); +const parseSpeechUrl = require('./parseSpeechUrl'); const getOEmbedData = (req, res) => { - const { - query: { url, format }, - } = req; + const { query: { url, format } } = req; logger.debug('req url', url); logger.debug('req format', format); @@ -38,7 +36,7 @@ const getOEmbedData = (req, res) => { return res.status(200).json(data); } }) - .catch(error => { + .catch((error) => { return res.status(404).json({ success: false, message: error, @@ -56,7 +54,7 @@ const getOEmbedData = (req, res) => { return res.status(200).json(data); } }) - .catch(error => { + .catch((error) => { return res.status(404).json({ success: false, message: error, @@ -65,4 +63,4 @@ const getOEmbedData = (req, res) => { } }; -export default getOEmbedData; +module.exports = getOEmbedData; diff --git a/server/controllers/api/oEmbed/parseSpeechUrl.js b/server/controllers/api/oEmbed/parseSpeechUrl.js index b677966f..9b330f17 100644 --- a/server/controllers/api/oEmbed/parseSpeechUrl.js +++ b/server/controllers/api/oEmbed/parseSpeechUrl.js @@ -1,10 +1,17 @@ -import logger from 'winston'; +const logger = require('winston'); -const parseSpeechUrl = url => { +const parseSpeechUrl = (url) => { const componentsRegex = new RegExp( - '([^:/?#]+://)' + '([^/?#]*)' + '(/)' + '([^/?#]*)' + '(/)' + '([^/?#]*)' + '([^:/?#]+://)' + + '([^/?#]*)' + + '(/)' + + '([^/?#]*)' + + '(/)' + + '([^/?#]*)' ); - const [, , , , paramOne, , paramTwo] = componentsRegex.exec(url).map(match => match || null); + const [, , , , paramOne, , paramTwo] = componentsRegex + .exec(url) + .map(match => match || null); logger.debug(`params from speech url: ${paramOne} ${paramTwo}`); @@ -14,4 +21,4 @@ const parseSpeechUrl = url => { }; }; -export default parseSpeechUrl; +module.exports = parseSpeechUrl; diff --git a/server/controllers/api/special/claims/index.js b/server/controllers/api/special/claims/index.js index c7378477..851d2a93 100644 --- a/server/controllers/api/special/claims/index.js +++ b/server/controllers/api/special/claims/index.js @@ -1,6 +1,6 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import db from 'server/models'; -import getClaimData from 'server/utils/getClaimData'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const db = require('server/models'); +const getClaimData = require('server/utils/getClaimData'); /* @@ -9,22 +9,25 @@ import getClaimData from 'server/utils/getClaimData'; */ const channelClaims = async ({ ip, originalUrl, body, params }, res) => { - const { name, page } = params; + const { + name, + page, + } = params; if (name === 'trending') { const result = await db.Trending.getTrendingClaims(); - const claims = await Promise.all(result.map(claim => getClaimData(claim))); + const claims = await Promise.all(result.map((claim) => getClaimData(claim))); return res.status(200).json({ success: true, - data: { - channelName: name, + data : { + channelName : name, claims, longChannelClaimId: name, - currentPage: 1, - nextPage: null, - previousPage: null, - totalPages: 1, - totalResults: claims.length, + currentPage : 1, + nextPage : null, + previousPage : null, + totalPages : 1, + totalResults : claims.length, }, }); } @@ -36,4 +39,4 @@ const channelClaims = async ({ ip, originalUrl, body, params }, res) => { handleErrorResponse(originalUrl, ip, 'Feature endpoint not found', res); }; -export default channelClaims; +module.exports = channelClaims; diff --git a/server/controllers/api/tor/index.js b/server/controllers/api/tor/index.js index dd013154..c5a8d64a 100644 --- a/server/controllers/api/tor/index.js +++ b/server/controllers/api/tor/index.js @@ -1,5 +1,5 @@ -import logger from 'winston'; -import db from 'server/models'; +const logger = require('winston'); +const db = require('../../../models'); /* @@ -13,7 +13,7 @@ const getTorList = (req, res) => { logger.debug('number of records', result.length); res.status(200).json(result); }) - .catch(error => { + .catch((error) => { logger.error(error); res.status(500).json({ success: false, @@ -22,4 +22,4 @@ const getTorList = (req, res) => { }); }; -export default getTorList; +module.exports = getTorList; diff --git a/server/controllers/api/user/password/index.js b/server/controllers/api/user/password/index.js index c5c47499..ddfb3f44 100644 --- a/server/controllers/api/user/password/index.js +++ b/server/controllers/api/user/password/index.js @@ -1,7 +1,7 @@ -import { handleErrorResponse } from '../../../utils/errorHandlers.js'; -import logger from 'winston'; -import db from 'server/models'; -import { masterPassword } from '@private/authConfig.json'; +const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); +const logger = require('winston'); +const db = require('../../../../models'); +const { masterPassword } = require('@private/authConfig.json'); /* route to update a password @@ -22,8 +22,7 @@ const updateUserPassword = ({ ip, originalUrl, body }, res) => { if (!userName || !oldPassword || !newPassword) { return res.status(400).json({ success: false, - message: - 'body should include userName (channel name without the @), oldPassword, & newPassword', + message: 'body should include userName (channel name without the @), oldPassword, & newPassword', }); } @@ -61,9 +60,9 @@ const updateUserPassword = ({ ip, originalUrl, body }, res) => { newPassword, }); }) - .catch(error => { + .catch((error) => { handleErrorResponse(originalUrl, ip, error, res); }); }; -export default updateUserPassword; +module.exports = updateUserPassword; diff --git a/server/controllers/assets/serveAsset/index.js b/server/controllers/assets/serveAsset/index.js index e3c0d72b..c953ca51 100644 --- a/server/controllers/assets/serveAsset/index.js +++ b/server/controllers/assets/serveAsset/index.js @@ -1,5 +1,5 @@ -import { sendGAServeEvent } from '@serverutils/googleAnalytics'; -import getClaimIdAndServeAsset from '../utils/getClaimIdAndServeAsset.js'; +const { sendGAServeEvent } = require('../../../utils/googleAnalytics'); +const getClaimIdAndServeAsset = require('../utils/getClaimIdAndServeAsset.js'); /* @@ -14,4 +14,4 @@ const serveAsset = ({ headers, ip, originalUrl, params: { claimName, claimId } } getClaimIdAndServeAsset(null, null, claimName, claimId, originalUrl, ip, res, headers); }; -export default serveAsset; +module.exports = serveAsset; diff --git a/server/controllers/assets/serveByClaim/index.js b/server/controllers/assets/serveByClaim/index.js index 4d474634..41701d2d 100644 --- a/server/controllers/assets/serveByClaim/index.js +++ b/server/controllers/assets/serveByClaim/index.js @@ -1,14 +1,14 @@ -import logger from 'winston'; +const logger = require('winston'); -import { sendGAServeEvent } from '@serverutils/googleAnalytics'; -import handleShowRender from 'server/render/handleShowRender'; +const { sendGAServeEvent } = require('../../../utils/googleAnalytics'); +const handleShowRender = require('../../../render/handleShowRender').default; -import lbryUri from '@globalutils/lbryUri.js'; +const lbryUri = require('../../../../utils/lbryUri.js'); -import determineRequestType from '../utils/determineRequestType.js'; -import getClaimIdAndServeAsset from '../utils/getClaimIdAndServeAsset.js'; +const determineRequestType = require('../utils/determineRequestType.js'); +const getClaimIdAndServeAsset = require('../utils/getClaimIdAndServeAsset.js'); -import { SHOW } from '../constants/request_types.js'; +const { SHOW } = require('../constants/request_types.js'); /* @@ -41,8 +41,8 @@ const serveByClaim = (req, res) => { sendGAServeEvent(headers, ip, originalUrl); } catch (error) { - return res.status(400).json({ success: false, message: error.message }); + return res.status(400).json({success: false, message: error.message}); } }; -export default serveByClaim; +module.exports = serveByClaim; diff --git a/server/controllers/assets/serveByIdentifierAndClaim/index.js b/server/controllers/assets/serveByIdentifierAndClaim/index.js index 27942c0d..b1cffe8e 100644 --- a/server/controllers/assets/serveByIdentifierAndClaim/index.js +++ b/server/controllers/assets/serveByIdentifierAndClaim/index.js @@ -1,15 +1,15 @@ -import logger from 'winston'; +const logger = require('winston'); -import { sendGAServeEvent } from 'server/utils/googleAnalytics'; -import handleShowRender from 'server/render/handleShowRender'; +const { sendGAServeEvent } = require('../../../utils/googleAnalytics'); +const handleShowRender = require('../../../render/handleShowRender').default; -import lbryUri from '@globalutils/lbryUri.js'; +const lbryUri = require('../../../../utils/lbryUri.js'); -import determineRequestType from '../utils/determineRequestType.js'; -import getClaimIdAndServeAsset from '../utils/getClaimIdAndServeAsset.js'; -import flipClaimNameAndId from '../utils/flipClaimNameAndId.js'; +const determineRequestType = require('../utils/determineRequestType.js'); +const getClaimIdAndServeAsset = require('../utils/getClaimIdAndServeAsset.js'); +const flipClaimNameAndId = require('../utils/flipClaimNameAndId.js'); -import { SHOW } from '../constants/request_types.js'; +const { SHOW } = require('../constants/request_types.js'); /* @@ -30,9 +30,7 @@ const serverByIdentifierAndClaim = (req, res) => { } ({ claimName } = lbryUri.parseClaim(params.claim)); - ({ isChannel, channelName, channelClaimId, claimId } = lbryUri.parseIdentifier( - params.identifier - )); + ({ isChannel, channelName, channelClaimId, claimId } = lbryUri.parseIdentifier(params.identifier)); if (!isChannel) { [claimId, claimName] = flipClaimNameAndId(claimId, claimName); @@ -49,21 +47,12 @@ const serverByIdentifierAndClaim = (req, res) => { claimId, }); - getClaimIdAndServeAsset( - channelName, - channelClaimId, - claimName, - claimId, - originalUrl, - ip, - res, - headers - ); + getClaimIdAndServeAsset(channelName, channelClaimId, claimName, claimId, originalUrl, ip, res, headers); sendGAServeEvent(headers, ip, originalUrl); } catch (error) { - return res.status(400).json({ success: false, message: error.message }); + return res.status(400).json({success: false, message: error.message}); } }; -export default serverByIdentifierAndClaim; +module.exports = serverByIdentifierAndClaim; diff --git a/server/controllers/assets/utils/determineRequestType.js b/server/controllers/assets/utils/determineRequestType.js index 236c7cb0..02e08fbc 100644 --- a/server/controllers/assets/utils/determineRequestType.js +++ b/server/controllers/assets/utils/determineRequestType.js @@ -1,6 +1,6 @@ -import { SERVE, SHOW } from '../constants/request_types.js'; +const { SERVE, SHOW } = require('../constants/request_types.js'); -function clientWantsAsset({ accept, range }) { +function clientWantsAsset ({accept, range}) { const imageIsWanted = accept && accept.match(/image\/.*/) && !accept.match(/text\/html/); const videoIsWanted = accept && accept.match(/video\/.*/) && !accept.match(/text\/html/); return imageIsWanted || videoIsWanted; @@ -13,4 +13,4 @@ const determineRequestType = (hasFileExtension, headers) => { return SHOW; }; -export default determineRequestType; +module.exports = determineRequestType; diff --git a/server/controllers/assets/utils/flipClaimNameAndId.js b/server/controllers/assets/utils/flipClaimNameAndId.js index a25a05f4..c41ebd02 100644 --- a/server/controllers/assets/utils/flipClaimNameAndId.js +++ b/server/controllers/assets/utils/flipClaimNameAndId.js @@ -1,14 +1,14 @@ -function isValidClaimId(claimId) { - return claimId.length === 40 && !/[^A-Za-z0-9]/g.test(claimId); -} +function isValidClaimId (claimId) { + return ((claimId.length === 40) && !/[^A-Za-z0-9]/g.test(claimId)); +}; -function isValidShortId(claimId) { - return claimId.length === 1; // it should really evaluate the short url itself -} +function isValidShortId (claimId) { + return claimId.length === 1; // it should really evaluate the short url itself +}; -function isValidShortIdOrClaimId(input) { - return isValidClaimId(input) || isValidShortId(input); -} +function isValidShortIdOrClaimId (input) { + return (isValidClaimId(input) || isValidShortId(input)); +}; const flipClaimNameAndId = (identifier, name) => { // this is a patch for backwards compatability with '/name/claimId' url format @@ -20,4 +20,4 @@ const flipClaimNameAndId = (identifier, name) => { return [identifier, name]; }; -export default flipClaimNameAndId; +module.exports = flipClaimNameAndId; diff --git a/server/controllers/assets/utils/getClaimIdAndServeAsset.js b/server/controllers/assets/utils/getClaimIdAndServeAsset.js index 40fa8865..cc1f4f89 100644 --- a/server/controllers/assets/utils/getClaimIdAndServeAsset.js +++ b/server/controllers/assets/utils/getClaimIdAndServeAsset.js @@ -1,20 +1,16 @@ -import logger from 'winston'; +const logger = require('winston'); -import db from 'server/models'; -import chainquery from 'chainquery'; -import { getFileListFileByOutpoint, getClaim } from 'server/lbrynet'; -import getClaimId from '../../utils/getClaimId.js'; -import { handleErrorResponse } from '../../utils/errorHandlers.js'; -import awaitFileSize from 'server/utils/awaitFileSize'; -import serveFile from './serveFile.js'; -import parseQueryString from 'server/utils/parseQuerystring'; -import publishCache from 'server/utils/publishCache'; -import isBot from 'isbot'; -import isApprovedChannel from '@globalutils/isApprovedChannel'; - -import { publishing } from '@config/siteConfig'; - -const { serveOnlyApproved, approvedChannels } = publishing; +const db = require('server/models'); +const chainquery = require('chainquery').default; +const isApprovedChannel = require('@globalutils/isApprovedChannel'); +const { getFileListFileByOutpoint, getClaim } = require('server/lbrynet'); +const getClaimId = require('../../utils/getClaimId.js'); +const { handleErrorResponse } = require('../../utils/errorHandlers.js'); +const awaitFileSize = require('server/utils/awaitFileSize'); +const serveFile = require('./serveFile.js'); +const parseQueryString = require('server/utils/parseQuerystring'); +const publishCache = require('server/utils/publishCache'); +const isBot = require('isbot'); const NO_CHANNEL = 'NO_CHANNEL'; const NO_CLAIM = 'NO_CLAIM'; @@ -26,6 +22,10 @@ const RETRY_MS = 250; const TIMEOUT_MS = 15000; const MIN_BYTES = 15000000; +const { + publishing: { serveOnlyApproved, approvedChannels }, +} = require('@config/siteConfig'); + const getClaimIdAndServeAsset = async ( channelName, channelClaimId, @@ -125,4 +125,4 @@ const getClaimIdAndServeAsset = async ( } }; -export default getClaimIdAndServeAsset; +module.exports = getClaimIdAndServeAsset; diff --git a/server/controllers/assets/utils/getLocalFileRecord.js b/server/controllers/assets/utils/getLocalFileRecord.js index 656f0cb7..53f8a469 100644 --- a/server/controllers/assets/utils/getLocalFileRecord.js +++ b/server/controllers/assets/utils/getLocalFileRecord.js @@ -1,14 +1,15 @@ -import db from 'server/models'; +const db = require('../../../models'); const NO_FILE = 'NO_FILE'; const getLocalFileRecord = (claimId, name) => { - return db.File.findOne({ where: { claimId, name } }).then(file => { - if (!file) { - return NO_FILE; - } - return file.dataValues; - }); + return db.File.findOne({where: {claimId, name}}) + .then(file => { + if (!file) { + return NO_FILE; + } + return file.dataValues; + }); }; -export default getLocalFileRecord; +module.exports = getLocalFileRecord; diff --git a/server/controllers/assets/utils/logRequestData.js b/server/controllers/assets/utils/logRequestData.js index 4e76883f..dde074c2 100644 --- a/server/controllers/assets/utils/logRequestData.js +++ b/server/controllers/assets/utils/logRequestData.js @@ -1,4 +1,4 @@ -import logger from 'winston'; +const logger = require('winston'); const logRequestData = (responseType, claimName, channelName, claimId) => { logger.debug('responseType ===', responseType); @@ -7,4 +7,4 @@ const logRequestData = (responseType, claimName, channelName, claimId) => { logger.debug('claim id ===', claimId); }; -export default logRequestData; +module.exports = logRequestData; diff --git a/server/controllers/assets/utils/serveFile.js b/server/controllers/assets/utils/serveFile.js index abb8678a..558fe611 100644 --- a/server/controllers/assets/utils/serveFile.js +++ b/server/controllers/assets/utils/serveFile.js @@ -1,10 +1,10 @@ -import logger from 'winston'; -import transformImage from './transformImage'; -import parseQueryString from 'server/utils/parseQuerystring'; -import isValidQueryObject from 'server/utils/isValidQueryObj'; -import { serving } from '@config/siteConfig'; -const { dynamicFileSizing } = serving; - +const logger = require('winston'); +const transformImage = require('./transformImage'); +const parseQueryString = require('server/utils/parseQuerystring'); +const isValidQueryObject = require('server/utils/isValidQueryObj'); +const { + serving: { dynamicFileSizing }, +} = require('@config/siteConfig'); const { enabled: dynamicEnabled } = dynamicFileSizing; const serveFile = async ( @@ -57,4 +57,4 @@ const serveFile = async ( } }; -export default serveFile; +module.exports = serveFile; diff --git a/server/controllers/assets/utils/transformImage.js b/server/controllers/assets/utils/transformImage.js index e3e76b1a..2d8408b4 100644 --- a/server/controllers/assets/utils/transformImage.js +++ b/server/controllers/assets/utils/transformImage.js @@ -1,9 +1,9 @@ -import gm from 'gm'; -import logger from 'winston'; -import { getImageHeightAndWidth } from '@serverutils/imageProcessing'; +const gm = require('gm'); +const logger = require('winston'); const imageMagick = gm.subClass({ imageMagick: true }); +const { getImageHeightAndWidth } = require('../../../utils/imageProcessing'); -export default function transformImage(path, queryObj) { +module.exports = function transformImage(path, queryObj) { return new Promise((resolve, reject) => { let { h: cHeight = null } = queryObj; let { w: cWidth = null } = queryObj; @@ -39,7 +39,7 @@ export default function transformImage(path, queryObj) { reject(e); } }); -} +}; function _cropCenter(path, cropWidth, cropHeight, originalWidth, originalHeight) { let oAspect = originalWidth / originalHeight; diff --git a/server/controllers/auth/login/index.js b/server/controllers/auth/login/index.js index ee99e05a..e88de217 100644 --- a/server/controllers/auth/login/index.js +++ b/server/controllers/auth/login/index.js @@ -1,4 +1,4 @@ -import speechPassport from 'server/speechPassport/index'; +const speechPassport = require('../../../speechPassport/index'); const login = (req, res, next) => { speechPassport.authenticate('local-login', (err, user, info) => { @@ -11,13 +11,13 @@ const login = (req, res, next) => { message: info.message, }); } - req.logIn(user, err => { + req.logIn(user, (err) => { if (err) { return next(err); } return res.status(200).json({ - success: true, - channelName: req.user.channelName, + success : true, + channelName : req.user.channelName, channelClaimId: req.user.channelClaimId, shortChannelId: req.user.shortChannelId, }); @@ -25,4 +25,4 @@ const login = (req, res, next) => { })(req, res, next); }; -export default login; +module.exports = login; diff --git a/server/controllers/auth/logout/index.js b/server/controllers/auth/logout/index.js index df963f1e..a2a7a490 100644 --- a/server/controllers/auth/logout/index.js +++ b/server/controllers/auth/logout/index.js @@ -7,4 +7,4 @@ const logout = (req, res) => { res.status(200).json(responseObject); }; -export default logout; +module.exports = logout; diff --git a/server/controllers/auth/signup/index.js b/server/controllers/auth/signup/index.js index 7fd35a4d..8db397cb 100644 --- a/server/controllers/auth/signup/index.js +++ b/server/controllers/auth/signup/index.js @@ -1,10 +1,10 @@ const signup = (req, res) => { res.status(200).json({ - success: true, - channelName: req.user.channelName, + success : true, + channelName : req.user.channelName, channelClaimId: req.user.channelClaimId, shortChannelId: req.user.shortChannelId, }); }; -export default signup; +module.exports = signup; diff --git a/server/controllers/auth/user/index.js b/server/controllers/auth/user/index.js index e614bd6c..8e3b3979 100644 --- a/server/controllers/auth/user/index.js +++ b/server/controllers/auth/user/index.js @@ -1,9 +1,9 @@ const user = (req, res) => { const responseObject = { success: true, - data: req.user, + data : req.user, }; res.status(200).json(responseObject); }; -export default user; +module.exports = user; diff --git a/server/controllers/pages/sendVideoEmbedPage.js b/server/controllers/pages/sendVideoEmbedPage.js index 71d51461..2a07ba0c 100644 --- a/server/controllers/pages/sendVideoEmbedPage.js +++ b/server/controllers/pages/sendVideoEmbedPage.js @@ -1,40 +1,42 @@ -import { assetDefaults, details } from '@config/siteConfig'; -const { thumbnail } = assetDefaults; -const { host } = details; +const { + assetDefaults: { thumbnail }, + details: { host }, +} = require('@config/siteConfig'); + const padSizes = { - small: 'padSmall', + small : 'padSmall', medium: 'padMedium', - large: 'padLarge', + large : 'padLarge', }; const argumentProcessors = { - bottom: async config => { + 'bottom': async (config) => { config.classNames.push('bottom'); }, - right: async config => { + 'right': async (config) => { config.classNames.push('right'); }, - pad: async (config, val) => { + 'pad': async (config, val) => { config.classNames.push(padSizes[val]); }, - logoClaim: async (config, val) => { + 'logoClaim': async (config, val) => { config.logoUrl = `${host}/${val}`; }, - link: async (config, val) => { + 'link': async (config, val) => { config.logoLink = val; }, }; -const parseLogoConfigParam = async rawConfig => { +const parseLogoConfigParam = async (rawConfig) => { if (rawConfig) { let parsedConfig = { classNames: ['logoLink'], - logoUrl: thumbnail, + logoUrl : thumbnail, }; let splitConfig; try { splitConfig = rawConfig.split(','); - } catch (e) {} + } catch (e) { } if (!splitConfig) { return false; @@ -62,7 +64,11 @@ const parseLogoConfigParam = async rawConfig => { }; const sendVideoEmbedPage = async ({ params }, res) => { - let { claimId, config, name } = params; + let { + claimId, + config, + name, + } = params; // if channel then swap name and claimId for order if (name[0] === '@' && name.includes(':')) { @@ -80,4 +86,4 @@ const sendVideoEmbedPage = async ({ params }, res) => { res.status(200).render('embed', { host, claimId, name, logoConfig }); }; -export default sendVideoEmbedPage; +module.exports = sendVideoEmbedPage; diff --git a/server/controllers/utils/errorHandlers.js b/server/controllers/utils/errorHandlers.js index ac324878..c2d6cac5 100644 --- a/server/controllers/utils/errorHandlers.js +++ b/server/controllers/utils/errorHandlers.js @@ -1,44 +1,45 @@ -import logger from 'winston'; +const logger = require('winston'); -export function handleErrorResponse(originalUrl, ip, error, res) { - logger.error(`Error on ${originalUrl}`, useObjectPropertiesIfNoKeys(error)); - const [status, message] = returnErrorMessageAndStatus(error); - res.status(status).json(createErrorResponsePayload(status, message)); -} - -export function returnErrorMessageAndStatus(error) { - let status, message; - // check for daemon being turned off - if (error.code === 'ECONNREFUSED') { - status = 503; - message = 'Connection refused. The daemon may not be running.'; - // fallback for everything else - } else { - status = 400; - if (error.message) { - message = error.message; +module.exports = { + handleErrorResponse: function (originalUrl, ip, error, res) { + logger.error(`Error on ${originalUrl}`, module.exports.useObjectPropertiesIfNoKeys(error)); + const [status, message] = module.exports.returnErrorMessageAndStatus(error); + res + .status(status) + .json(module.exports.createErrorResponsePayload(status, message)); + }, + returnErrorMessageAndStatus: function (error) { + let status, message; + // check for daemon being turned off + if (error.code === 'ECONNREFUSED') { + status = 503; + message = 'Connection refused. The daemon may not be running.'; + // fallback for everything else } else { - message = error; + status = 400; + if (error.message) { + message = error.message; + } else { + message = error; + } } - } - return [status, message]; -} - -export function useObjectPropertiesIfNoKeys(err) { - if (Object.keys(err).length === 0) { - let newErrorObject = {}; - Object.getOwnPropertyNames(err).forEach(key => { - newErrorObject[key] = err[key]; - }); - return newErrorObject; - } - return err; -} - -function createErrorResponsePayload(status, message) { - return { - status, - success: false, - message, - }; -} + return [status, message]; + }, + useObjectPropertiesIfNoKeys: function (err) { + if (Object.keys(err).length === 0) { + let newErrorObject = {}; + Object.getOwnPropertyNames(err).forEach((key) => { + newErrorObject[key] = err[key]; + }); + return newErrorObject; + } + return err; + }, + createErrorResponsePayload (status, message) { + return { + status, + success: false, + message, + }; + }, +}; diff --git a/server/controllers/utils/getClaimId.js b/server/controllers/utils/getClaimId.js index 87424f85..eb007bd9 100644 --- a/server/controllers/utils/getClaimId.js +++ b/server/controllers/utils/getClaimId.js @@ -1,8 +1,8 @@ -import logger from 'winston'; -import db from 'server/models'; -import chainquery from 'chainquery'; -import publishCache from 'server/utils/publishCache'; -import createCanonicalLink from '@globalutils/createCanonicalLink'; +const logger = require('winston'); +const db = require('../../models'); +const chainquery = require('chainquery').default; +const publishCache = require('server/utils/publishCache'); +const createCanonicalLink = require('@globalutils/createCanonicalLink'); const getClaimIdByChannel = async (channelName, channelClaimId, claimName) => { logger.debug(`getClaimIdByChannel(${channelName}, ${channelClaimId}, ${claimName})`); @@ -36,4 +36,4 @@ const getClaimId = async (channelName, channelClaimId, name, claimId) => { } }; -export default getClaimId; +module.exports = getClaimId; diff --git a/server/controllers/utils/redirect.js b/server/controllers/utils/redirect.js index 8a25fa06..8f2df4dd 100644 --- a/server/controllers/utils/redirect.js +++ b/server/controllers/utils/redirect.js @@ -1,7 +1,7 @@ -const redirect = route => { +const redirect = (route) => { return (req, res) => { res.status(301).redirect(route); }; }; -export default redirect; +module.exports = redirect; diff --git a/server/index.js b/server/index.js index fda573d9..e3806779 100644 --- a/server/index.js +++ b/server/index.js @@ -1,33 +1,36 @@ // load modules -import express from 'express'; -import bodyParser from 'body-parser'; -import expressHandlebars from 'express-handlebars'; -import helmet from 'helmet'; -import cookieSession from 'cookie-session'; -import http from 'http'; -import logger from 'winston'; -import Path from 'path'; -import httpContext from 'express-http-context'; +const express = require('express'); +const bodyParser = require('body-parser'); +const expressHandlebars = require('express-handlebars'); +const helmet = require('helmet'); +const cookieSession = require('cookie-session'); +const http = require('http'); +const logger = require('winston'); +const Path = require('path'); +const httpContext = require('express-http-context'); // load local modules -import db from './models'; -import requestLogger from './middleware/requestLogger'; -import createDatabaseIfNotExists from './models/utils/createDatabaseIfNotExists'; -import { getAccountBalance } from './lbrynet/index'; -import configureLogging from './utils/configureLogging'; -import configureSlack from './utils/configureSlack'; -import { setupBlockList } from './utils/blockList'; -import speechPassport from './speechPassport'; -import processTrending from './utils/processTrending'; +const db = require('./models'); +const requestLogger = require('./middleware/requestLogger'); +const createDatabaseIfNotExists = require('./models/utils/createDatabaseIfNotExists'); +const { getAccountBalance } = require('./lbrynet/index'); +const configureLogging = require('./utils/configureLogging'); +const configureSlack = require('./utils/configureSlack'); +const { setupBlockList } = require('./utils/blockList'); +const speechPassport = require('./speechPassport'); +const processTrending = require('./utils/processTrending'); -import { +const { logMetricsMiddleware, setRouteDataInContextMiddleware, -} from './middleware/logMetricsMiddleware'; -import { sessionKey } from '@private/authConfig.json'; -import { details, startup } from '@config/siteConfig'; -const { port: PORT, blockListEndpoint } = details; -const { performChecks, performUpdates } = startup; +} = require('./middleware/logMetricsMiddleware'); + +const { + details: { port: PORT, blockListEndpoint }, + startup: { performChecks, performUpdates }, +} = require('@config/siteConfig'); + +const { sessionKey } = require('@private/authConfig.json'); // configure.js doesn't handle new keys in config.json files yet. Make sure it doens't break. let finalBlockListEndpoint; @@ -243,4 +246,4 @@ function Server() { }; } -export default Server; +module.exports = Server; diff --git a/server/lbrynet/index.js b/server/lbrynet/index.js index d7c5a5a4..caecb74a 100644 --- a/server/lbrynet/index.js +++ b/server/lbrynet/index.js @@ -1,209 +1,212 @@ -import axios from 'axios'; -import logger from 'winston'; -import db from 'server/models'; -import { handleLbrynetResponse } from './utils/handleLbrynetResponse.js'; -import { apiHost, apiPort, getTimeout } from '@config/lbryConfig'; -import { chooseGaLbrynetPublishLabel, sendGATimingEvent } from '../utils/googleAnalytics.js'; -import { publishing } from '@config/siteConfig'; - +const axios = require('axios'); +const logger = require('winston'); +const { apiHost, apiPort, getTimeout } = require('@config/lbryConfig'); const lbrynetUri = 'http://' + apiHost + ':' + apiPort; +const db = require('../models'); +const { chooseGaLbrynetPublishLabel, sendGATimingEvent } = require('../utils/googleAnalytics.js'); +const handleLbrynetResponse = require('./utils/handleLbrynetResponse.js'); +const { publishing } = require('@config/siteConfig'); -export function publishClaim(publishParams) { - logger.debug(`lbryApi >> Publishing claim to "${publishParams.name}"`); - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'publish', - params: publishParams, - }) - .then(response => { - sendGATimingEvent( - 'lbrynet', - 'publish', - chooseGaLbrynetPublishLabel(publishParams), - gaStartTime, - Date.now() - ); - handleLbrynetResponse(response, resolve, reject); - }) - .catch(error => { - reject(error); - }); - }); -} - -export function getClaim(uri) { - logger.debug(`lbryApi >> Getting Claim for "${uri}"`); - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'get', - params: { - uri, - timeout: getTimeout || 30, - }, - }) - .then(response => { - sendGATimingEvent('lbrynet', 'getClaim', 'GET', gaStartTime, Date.now()); - handleLbrynetResponse(response, resolve, reject); - }) - .catch(error => { - reject(error); - }); - }); -} - -export async function abandonClaim({ claimId }) { - logger.debug(`lbryApi >> Abandon claim "${claimId}"`); - const gaStartTime = Date.now(); - try { - const abandon = await axios.post(lbrynetUri, { - method: 'claim_abandon', - params: { claim_id: claimId }, - }); - sendGATimingEvent('lbrynet', 'abandonClaim', 'ABANDON_CLAIM', gaStartTime, Date.now()); - return abandon.data; - } catch (error) { - logger.error(error); - return error; - } -} - -export function getFileListFileByOutpoint(outpoint) { - logger.debug(`lbryApi >> Getting File_List for "${outpoint}"`); - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'file_list', - params: { - outpoint, - }, - }) - .then(response => { - sendGATimingEvent('lbrynet', 'getFileList', 'FILE_LIST', gaStartTime, Date.now()); - handleLbrynetResponse(response, resolve, reject); - }) - .catch(error => { - reject(error); - }); - }); -} - -export function getClaimList(claimName) { - logger.debug(`lbryApi >> Getting claim_list for "${claimName}"`); - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'claim_list', - params: { name: claimName }, - }) - .then(response => { - sendGATimingEvent('lbrynet', 'getClaimList', 'CLAIM_LIST', gaStartTime, Date.now()); - handleLbrynetResponse(response, resolve, reject); - }) - .catch(error => { - reject(error); - }); - }); -} -export function resolveUri(uri) { - logger.debug(`lbryApi >> Resolving URI for "${uri}"`); - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'resolve', - params: { urls: uri }, - }) - .then(({ data }) => { - sendGATimingEvent('lbrynet', 'resolveUri', 'RESOLVE', gaStartTime, Date.now()); - if (Object.keys(data.result).length === 0 && data.result.constructor === Object) { - // workaround for daemon returning empty result object - // https://github.com/lbryio/lbry/issues/1485 - db.Claim.findOne({ where: { claimId: uri.split('#')[1] } }) - .then(() => reject('This claim has not yet been confirmed on the LBRY blockchain')) - .catch(() => reject(`Claim ${uri} does not exist`)); - } else if (data.result[uri].error) { - // check for errors - reject(data.result[uri].error); - } else { - // if no errors, resolve - resolve(data.result[uri]); - } - }) - .catch(error => { - reject(error); - }); - }); -} -export function getDownloadDirectory() { - logger.debug('lbryApi >> Retrieving the download directory path from lbry daemon...'); - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'settings_get', - }) - .then(({ data }) => { - sendGATimingEvent( - 'lbrynet', - 'getDownloadDirectory', - 'SETTINGS_GET', - gaStartTime, - Date.now() - ); - if (data.result) { - resolve(data.result.download_directory); - } else { - return new Error( - 'Successfully connected to lbry daemon, but unable to retrieve the download directory.' +module.exports = { + publishClaim(publishParams) { + logger.debug(`lbryApi >> Publishing claim to "${publishParams.name}"`); + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'publish', + params: publishParams, + }) + .then(response => { + sendGATimingEvent( + 'lbrynet', + 'publish', + chooseGaLbrynetPublishLabel(publishParams), + gaStartTime, + Date.now() ); - } - }) - .catch(error => { - logger.error('Lbrynet Error:', error); - resolve('/home/lbry/Downloads/'); + handleLbrynetResponse(response, resolve, reject); + }) + .catch(error => { + reject(error); + }); + }); + }, + getClaim(uri) { + logger.debug(`lbryApi >> Getting Claim for "${uri}"`); + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'get', + params: { + uri, + timeout: getTimeout || 30, + }, + }) + .then(response => { + sendGATimingEvent('lbrynet', 'getClaim', 'GET', gaStartTime, Date.now()); + handleLbrynetResponse(response, resolve, reject); + }) + .catch(error => { + reject(error); + }); + }); + }, + getFileListFileByOutpoint(outpoint) { + logger.debug(`lbryApi >> Getting File_List for "${outpoint}"`); + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'file_list', + params: { + outpoint, + }, + }) + .then(response => { + sendGATimingEvent('lbrynet', 'getFileList', 'FILE_LIST', gaStartTime, Date.now()); + handleLbrynetResponse(response, resolve, reject); + }) + .catch(error => { + reject(error); + }); + }); + }, + async abandonClaim({ claimId }) { + logger.debug(`lbryApi >> Abandon claim "${claimId}"`); + const gaStartTime = Date.now(); + try { + const abandon = await axios.post(lbrynetUri, { + method: 'claim_abandon', + params: { claim_id: claimId }, }); - }); -} -export function createChannel(name) { - logger.debug(`lbryApi >> Creating channel for ${name}...`); - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'channel_new', - params: { - channel_name: name, - amount: publishing.channelClaimBidAmount, - }, - }) - .then(response => { - sendGATimingEvent('lbrynet', 'createChannel', 'CHANNEL_NEW', gaStartTime, Date.now()); - handleLbrynetResponse(response, resolve, reject); - }) - .catch(error => { - reject(error); - }); - }); -} -export function getAccountBalance() { - const gaStartTime = Date.now(); - return new Promise((resolve, reject) => { - axios - .post(lbrynetUri, { - method: 'account_balance', - }) - .then(response => { - sendGATimingEvent('lbrynet', 'getAccountBalance', 'SETTINGS_GET', gaStartTime, Date.now()); - handleLbrynetResponse(response, resolve, reject); - }) - .catch(error => { - reject(error); - }); - }); -} + sendGATimingEvent('lbrynet', 'abandonClaim', 'ABANDON_CLAIM', gaStartTime, Date.now()); + return abandon.data; + } catch (error) { + logger.error(error); + return error; + } + }, + getClaimList(claimName) { + logger.debug(`lbryApi >> Getting claim_list for "${claimName}"`); + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'claim_list', + params: { name: claimName }, + }) + .then(response => { + sendGATimingEvent('lbrynet', 'getClaimList', 'CLAIM_LIST', gaStartTime, Date.now()); + handleLbrynetResponse(response, resolve, reject); + }) + .catch(error => { + reject(error); + }); + }); + }, + resolveUri(uri) { + logger.debug(`lbryApi >> Resolving URI for "${uri}"`); + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'resolve', + params: { urls: uri }, + }) + .then(({ data }) => { + sendGATimingEvent('lbrynet', 'resolveUri', 'RESOLVE', gaStartTime, Date.now()); + if (Object.keys(data.result).length === 0 && data.result.constructor === Object) { + // workaround for daemon returning empty result object + // https://github.com/lbryio/lbry/issues/1485 + db.Claim.findOne({ where: { claimId: uri.split('#')[1] } }) + .then(() => reject('This claim has not yet been confirmed on the LBRY blockchain')) + .catch(() => reject(`Claim ${uri} does not exist`)); + } else if (data.result[uri].error) { + // check for errors + reject(data.result[uri].error); + } else { + // if no errors, resolve + resolve(data.result[uri]); + } + }) + .catch(error => { + reject(error); + }); + }); + }, + getDownloadDirectory() { + logger.debug('lbryApi >> Retrieving the download directory path from lbry daemon...'); + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'settings_get', + }) + .then(({ data }) => { + sendGATimingEvent( + 'lbrynet', + 'getDownloadDirectory', + 'SETTINGS_GET', + gaStartTime, + Date.now() + ); + if (data.result) { + resolve(data.result.download_dir); + } else { + return new Error( + 'Successfully connected to lbry daemon, but unable to retrieve the download directory.' + ); + } + }) + .catch(error => { + logger.error('Lbrynet Error:', error); + resolve('/home/lbry/Downloads/'); + }); + }); + }, + createChannel(name) { + logger.debug(`lbryApi >> Creating channel for ${name}...`); + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'channel_new', + params: { + channel_name: name, + amount: publishing.channelClaimBidAmount, + }, + }) + .then(response => { + sendGATimingEvent('lbrynet', 'createChannel', 'CHANNEL_NEW', gaStartTime, Date.now()); + handleLbrynetResponse(response, resolve, reject); + }) + .catch(error => { + reject(error); + }); + }); + }, + getAccountBalance() { + const gaStartTime = Date.now(); + return new Promise((resolve, reject) => { + axios + .post(lbrynetUri, { + method: 'account_balance', + }) + .then(response => { + sendGATimingEvent( + 'lbrynet', + 'getAccountBalance', + 'SETTINGS_GET', + gaStartTime, + Date.now() + ); + handleLbrynetResponse(response, resolve, reject); + }) + .catch(error => { + reject(error); + }); + }); + }, +}; diff --git a/server/lbrynet/utils/handleLbrynetResponse.js b/server/lbrynet/utils/handleLbrynetResponse.js index 138f5031..a5cc72a4 100644 --- a/server/lbrynet/utils/handleLbrynetResponse.js +++ b/server/lbrynet/utils/handleLbrynetResponse.js @@ -1,6 +1,6 @@ -import logger from 'winston'; +const logger = require('winston'); -export const handleLbrynetResponse = ({ data }, resolve, reject) => { +const handleLbrynetResponse = ({ data }, resolve, reject) => { logger.debug('lbry api data:', data); if (data) { // check for an error @@ -15,3 +15,5 @@ export const handleLbrynetResponse = ({ data }, resolve, reject) => { // fallback in case it just timed out reject(JSON.stringify(data)); }; + +module.exports = handleLbrynetResponse; diff --git a/server/middleware/autoblockPublishMiddleware.js b/server/middleware/autoblockPublishMiddleware.js index 8bad323c..426323a1 100644 --- a/server/middleware/autoblockPublishMiddleware.js +++ b/server/middleware/autoblockPublishMiddleware.js @@ -1,8 +1,9 @@ -import fs from 'fs'; +const fs = require('fs'); -import logger from 'winston'; -import { publishing } from '@config/siteConfig'; -const { publishingChannelWhitelist } = publishing; +const logger = require('winston'); +const { + publishing: { publishingChannelWhitelist }, +} = require('@config/siteConfig'); const ipBanFile = './site/config/ipBan.txt'; const forbiddenMessage = '

Forbidden

If you are seeing this by mistake, please contact us using https://chat.lbry.com/'; @@ -22,7 +23,7 @@ if (fs.existsSync(ipBanFile)) { }); } -export const autoblockPublishMiddleware = (req, res, next) => { +const autoblockPublishMiddleware = (req, res, next) => { let ip = (req.headers['x-forwarded-for'] || req.connection.remoteAddress).split(/,\s?/)[0]; if (blockedAddresses.indexOf(ip) !== -1) { @@ -55,7 +56,7 @@ export const autoblockPublishMiddleware = (req, res, next) => { } }; -export const autoblockPublishBodyMiddleware = (req, res, next) => { +const autoblockPublishBodyMiddleware = (req, res, next) => { if (req.body && publishingChannelWhitelist) { let ip = (req.headers['x-forwarded-for'] || req.connection.remoteAddress).split(/,\s?/)[0]; const { channelName } = req.body; @@ -66,3 +67,8 @@ export const autoblockPublishBodyMiddleware = (req, res, next) => { } next(); }; + +module.exports = { + autoblockPublishMiddleware, + autoblockPublishBodyMiddleware, +}; diff --git a/server/middleware/logMetricsMiddleware.js b/server/middleware/logMetricsMiddleware.js index f9f0a748..e4ddaceb 100644 --- a/server/middleware/logMetricsMiddleware.js +++ b/server/middleware/logMetricsMiddleware.js @@ -1,8 +1,8 @@ -import logger from 'winston'; -import db from '../models'; -import httpContext from 'express-http-context'; +const logger = require('winston'); +const db = require('../models'); +const httpContext = require('express-http-context'); -export function logMetricsMiddleware(req, res, next) { +function logMetricsMiddleware (req, res, next) { res.on('finish', () => { const userAgent = req.get('user-agent'); const routePath = httpContext.get('routePath'); @@ -26,15 +26,15 @@ export function logMetricsMiddleware(req, res, next) { } db.Metrics.create({ - time: Date.now(), + time : Date.now(), isInternal: /node-fetch/.test(userAgent), - isChannel: res.isChannel, - claimId: res.claimId, - routePath: httpContext.get('routePath'), - params: JSON.stringify(req.params), - ip: req.headers['x-forwarded-for'] || req.connection.remoteAddress, - request: req.url, - routeData: JSON.stringify(httpContext.get('routeData')), + isChannel : res.isChannel, + claimId : res.claimId, + routePath : httpContext.get('routePath'), + params : JSON.stringify(req.params), + ip : req.headers['x-forwarded-for'] || req.connection.remoteAddress, + request : req.url, + routeData : JSON.stringify(httpContext.get('routeData')), referrer, userAgent, }); @@ -43,10 +43,15 @@ export function logMetricsMiddleware(req, res, next) { next(); } -export function setRouteDataInContextMiddleware(routePath, routeData) { - return function(req, res, next) { +function setRouteDataInContextMiddleware (routePath, routeData) { + return function (req, res, next) { httpContext.set('routePath', routePath); httpContext.set('routeData', routeData); next(); }; } + +module.exports = { + logMetricsMiddleware, + setRouteDataInContextMiddleware, +}; diff --git a/server/middleware/multipartMiddleware.js b/server/middleware/multipartMiddleware.js index d92fe081..c193e147 100644 --- a/server/middleware/multipartMiddleware.js +++ b/server/middleware/multipartMiddleware.js @@ -1,6 +1,5 @@ -import multipart from 'connect-multiparty'; -import { publishing } from '@config/siteConfig'; -const { uploadDirectory } = publishing; -const multipartMiddleware = multipart({ uploadDir: uploadDirectory }); +const multipart = require('connect-multiparty'); +const { publishing: { uploadDirectory } } = require('@config/siteConfig'); +const multipartMiddleware = multipart({uploadDir: uploadDirectory}); -export default multipartMiddleware; +module.exports = multipartMiddleware; diff --git a/server/middleware/requestLogger.js b/server/middleware/requestLogger.js index a423534a..990b9c1f 100644 --- a/server/middleware/requestLogger.js +++ b/server/middleware/requestLogger.js @@ -1,8 +1,8 @@ -import logger from 'winston'; +const logger = require('winston'); -const requestLogger = (req, res, next) => { - // custom logging middleware to log all incoming http requests +const requestLogger = (req, res, next) => { // custom logging middleware to log all incoming http requests logger.debug(`Request on ${req.originalUrl} from ${req.ip}`); next(); }; -export default requestLogger; + +module.exports = requestLogger; diff --git a/server/middleware/torCheckMiddleware.js b/server/middleware/torCheckMiddleware.js index 9c67e2d9..62c42af5 100644 --- a/server/middleware/torCheckMiddleware.js +++ b/server/middleware/torCheckMiddleware.js @@ -1,22 +1,22 @@ -import logger from 'winston'; -import db from 'server/models'; +const logger = require('winston'); +const db = require('../models'); const torCheck = (req, res, next) => { const { ip } = req; logger.debug(`tor check for: ${ip}`); - return db.Tor.findAll({ - where: { - address: ip, - }, - raw: true, - }) + return db.Tor.findAll( + { + where: { + address: ip, + }, + raw: true, + }) .then(result => { if (result.length >= 1) { logger.info('Tor request blocked:', ip); const failureResponse = { success: false, - message: - 'Unfortunately this api route is not currently available for tor users. We are working on a solution that will allow tor users to use this endpoint in the future.', + message: 'Unfortunately this api route is not currently available for tor users. We are working on a solution that will allow tor users to use this endpoint in the future.', }; res.status(403).json(failureResponse); } else { @@ -27,4 +27,5 @@ const torCheck = (req, res, next) => { logger.error(error); }); }; -export default torCheck; + +module.exports = torCheck; diff --git a/server/models/blocked.js b/server/models/blocked.js index 344ca4f9..fff43d51 100644 --- a/server/models/blocked.js +++ b/server/models/blocked.js @@ -1,12 +1,12 @@ -import logger from 'winston'; +const logger = require('winston'); const BLOCKED_CLAIM = 'BLOCKED_CLAIM'; -export default (sequelize, { STRING }) => { +module.exports = (sequelize, { STRING }) => { const Blocked = sequelize.define( 'Blocked', { outpoint: { - type: STRING, + type : STRING, allowNull: false, }, }, @@ -15,16 +15,15 @@ export default (sequelize, { STRING }) => { } ); - Blocked.getBlockList = function() { + Blocked.getBlockList = function () { logger.debug('returning full block list'); return new Promise((resolve, reject) => { - this.findAll().then(list => { - return resolve(list); - }); + this.findAll() + .then(list => { return resolve(list) }); }); }; - Blocked.isNotBlocked = function(outpoint) { + Blocked.isNotBlocked = function (outpoint) { logger.debug(`checking to see if ${outpoint} is not blocked`); return new Promise((resolve, reject) => { this.findOne({ @@ -45,7 +44,7 @@ export default (sequelize, { STRING }) => { }); }; - Blocked.refreshTable = function(blockEndpoint) { + Blocked.refreshTable = function (blockEndpoint) { let blockedList = []; return fetch(blockEndpoint) diff --git a/server/models/certificate.js b/server/models/certificate.js index 253eb1cc..5dc5120a 100644 --- a/server/models/certificate.js +++ b/server/models/certificate.js @@ -1,98 +1,98 @@ -import logger from 'winston'; -import returnShortId from './utils/returnShortId'; +const logger = require('winston'); +const returnShortId = require('./utils/returnShortId.js'); const NO_CHANNEL = 'NO_CHANNEL'; -function isLongChannelId(channelId) { - return channelId && channelId.length === 40; +function isLongChannelId (channelId) { + return (channelId && (channelId.length === 40)); } -function isShortChannelId(channelId) { - return channelId && channelId.length < 40; +function isShortChannelId (channelId) { + return (channelId && (channelId.length < 40)); } -export default (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { +module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { const Certificate = sequelize.define( 'Certificate', { address: { - type: STRING, + type : STRING, default: null, }, amount: { - type: DECIMAL(19, 8), + type : DECIMAL(19, 8), default: null, }, claimId: { - type: STRING, + type : STRING, default: null, }, claimSequence: { - type: INTEGER, + type : INTEGER, default: null, }, decodedClaim: { - type: BOOLEAN, + type : BOOLEAN, default: null, }, depth: { - type: INTEGER, + type : INTEGER, default: null, }, effectiveAmount: { - type: DECIMAL(19, 8), + type : DECIMAL(19, 8), default: null, }, hasSignature: { - type: BOOLEAN, + type : BOOLEAN, default: null, }, height: { - type: INTEGER, + type : INTEGER, default: null, }, hex: { - type: TEXT('long'), + type : TEXT('long'), default: null, }, name: { - type: STRING, + type : STRING, default: null, }, nout: { - type: INTEGER, + type : INTEGER, default: null, }, txid: { - type: STRING, + type : STRING, default: null, }, validAtHeight: { - type: INTEGER, + type : INTEGER, default: null, }, outpoint: { - type: STRING, + type : STRING, default: null, }, valueVersion: { - type: STRING, + type : STRING, default: null, }, claimType: { - type: STRING, + type : STRING, default: null, }, certificateVersion: { - type: STRING, + type : STRING, default: null, }, keyType: { - type: STRING, + type : STRING, default: null, }, publicKey: { - type: TEXT('long'), + type : TEXT('long'), default: null, }, }, @@ -109,13 +109,14 @@ export default (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { }); }; - Certificate.getShortChannelIdFromLongChannelId = function(longChannelId, channelName) { + Certificate.getShortChannelIdFromLongChannelId = function (longChannelId, channelName) { logger.debug(`getShortChannelIdFromLongChannelId ${channelName}:${longChannelId}`); return new Promise((resolve, reject) => { - this.findAll({ - where: { name: channelName }, - order: [['height', 'ASC']], - }) + this + .findAll({ + where: {name: channelName}, + order: [['height', 'ASC']], + }) .then(result => { switch (result.length) { case 0: @@ -130,11 +131,11 @@ export default (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { }); }; - Certificate.validateLongChannelId = function(name, claimId) { + Certificate.validateLongChannelId = function (name, claimId) { logger.debug(`validateLongChannelId(${name}, ${claimId})`); return new Promise((resolve, reject) => { this.findOne({ - where: { name, claimId }, + where: {name, claimId}, }) .then(result => { if (!result) { @@ -149,18 +150,19 @@ export default (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { }); }; - Certificate.getLongChannelIdFromShortChannelId = function(channelName, channelClaimId) { + Certificate.getLongChannelIdFromShortChannelId = function (channelName, channelClaimId) { logger.debug(`getLongChannelIdFromShortChannelId(${channelName}, ${channelClaimId})`); return new Promise((resolve, reject) => { - this.findAll({ - where: { - name: channelName, - claimId: { - [sequelize.Op.like]: `${channelClaimId}%`, + this + .findAll({ + where: { + name : channelName, + claimId: { + [sequelize.Op.like]: `${channelClaimId}%`, + }, }, - }, - order: [['height', 'ASC']], - }) + order: [['height', 'ASC']], + }) .then(result => { switch (result.length) { case 0: @@ -176,13 +178,14 @@ export default (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { }); }; - Certificate.getLongChannelIdFromChannelName = function(channelName) { + Certificate.getLongChannelIdFromChannelName = function (channelName) { logger.debug(`getLongChannelIdFromChannelName(${channelName})`); return new Promise((resolve, reject) => { - this.findAll({ - where: { name: channelName }, - order: [['effectiveAmount', 'DESC'], ['height', 'ASC']], - }) + this + .findAll({ + where: { name: channelName }, + order: [['effectiveAmount', 'DESC'], ['height', 'ASC']], + }) .then(result => { switch (result.length) { case 0: @@ -198,7 +201,7 @@ export default (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { }); }; - Certificate.getLongChannelId = function(channelName, channelClaimId) { + Certificate.getLongChannelId = function (channelName, channelClaimId) { logger.debug(`getLongChannelId(${channelName}, ${channelClaimId})`); if (isLongChannelId(channelClaimId)) { return this.validateLongChannelId(channelName, channelClaimId); diff --git a/server/models/channel.js b/server/models/channel.js index ab3927d0..9421ee52 100644 --- a/server/models/channel.js +++ b/server/models/channel.js @@ -1,13 +1,13 @@ -export default (sequelize, { STRING }) => { +module.exports = (sequelize, { STRING }) => { const Channel = sequelize.define( 'Channel', { channelName: { - type: STRING, + type : STRING, allowNull: false, }, channelClaimId: { - type: STRING, + type : STRING, allowNull: false, }, }, diff --git a/server/models/claim.js b/server/models/claim.js index 675b0c1a..acede7b3 100644 --- a/server/models/claim.js +++ b/server/models/claim.js @@ -1,10 +1,13 @@ -import logger from 'winston'; -import returnShortId from './utils/returnShortId.js'; -import isApprovedChannel from '@globalutils/isApprovedChannel'; -import { assetDefaults, details, publishing } from '@config/siteConfig'; -const { thumbnail: defaultThumbnail } = assetDefaults; -const { host } = details; -const { serveOnlyApproved, approvedChannels } = publishing; +const logger = require('winston'); +const returnShortId = require('./utils/returnShortId.js'); +const isApprovedChannel = require('../../utils/isApprovedChannel'); +const { + assetDefaults: { thumbnail: defaultThumbnail }, + details: { host }, +} = require('@config/siteConfig'); +const { + publishing: { serveOnlyApproved, approvedChannels }, +} = require('@config/siteConfig'); const NO_CLAIM = 'NO_CLAIM'; @@ -50,7 +53,7 @@ function isShortClaimId(claimId) { return claimId && claimId.length < 40; } -export default (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { +module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { const Claim = sequelize.define( 'Claim', { diff --git a/server/models/file.js b/server/models/file.js index d75df685..0566384d 100644 --- a/server/models/file.js +++ b/server/models/file.js @@ -1,35 +1,35 @@ -export default (sequelize, { STRING, BOOLEAN, INTEGER }) => { +module.exports = (sequelize, { STRING, BOOLEAN, INTEGER }) => { const File = sequelize.define( 'File', { name: { - type: STRING, + type : STRING, allowNull: false, }, claimId: { - type: STRING, + type : STRING, allowNull: false, }, outpoint: { - type: STRING, + type : STRING, allowNull: false, }, fileHeight: { - type: INTEGER, + type : INTEGER, allowNull: false, - default: 0, + default : 0, }, fileWidth: { - type: INTEGER, + type : INTEGER, allowNull: false, - default: 0, + default : 0, }, fileName: { - type: STRING, + type : STRING, allowNull: false, }, filePath: { - type: STRING, + type : STRING, allowNull: false, }, fileType: { diff --git a/server/models/index.js b/server/models/index.js index 53b0438e..7f4ba767 100644 --- a/server/models/index.js +++ b/server/models/index.js @@ -1,18 +1,22 @@ -import Sequelize from 'sequelize'; -import logger from 'winston'; +const Sequelize = require('sequelize'); +const logger = require('winston'); -import Blocked from './blocked'; -import Certificate from './certificate'; -import Channel from './channel'; -import Claim from './claim'; -import File from './file'; -import Metrics from './metrics'; -import Tor from './tor'; -import Trending from './trending'; -import User from './user'; -import Views from './views'; +const Blocked = require('./blocked'); +const Certificate = require('./certificate'); +const Channel = require('./channel'); +const Claim = require('./claim'); +const File = require('./file'); +const Metrics = require('./metrics'); +const Tor = require('./tor'); +const Trending = require('./trending'); +const User = require('./user'); +const Views = require('./views'); -import { database, username, password } from '@config/mysqlConfig'; +const { + database, + username, + password, +} = require('@config/mysqlConfig'); if (!database || !username || !password) { logger.warn('missing database, user, or password from mysqlConfig'); @@ -20,16 +24,16 @@ if (!database || !username || !password) { // set sequelize options const sequelize = new Sequelize(database, username, password, { - host: 'localhost', - dialect: 'mysql', + host : 'localhost', + dialect : 'mysql', dialectOptions: { decimalNumbers: true, }, logging: false, - pool: { - max: 5, - min: 0, - idle: 10000, + pool : { + max : 5, + min : 0, + idle : 10000, acquire: 10000, }, operatorsAliases: false, @@ -73,24 +77,23 @@ db.sequelize = sequelize; db.Sequelize = Sequelize; // add an 'upsert' method to the db object db.upsert = (Model, values, condition, tableName) => { - return Model.findOne({ - where: condition, - }) + return Model + .findOne({ + where: condition, + }) .then(obj => { - if (obj) { - // update + if (obj) { // update logger.debug(`updating record in db.${tableName}`); return obj.update(values); - } else { - // insert + } else { // insert logger.debug(`creating record in db.${tableName}`); return Model.create(values); } }) - .catch(function(error) { + .catch(function (error) { logger.error(`${tableName}.upsert error`, error); throw error; }); }; -export default db; +module.exports = db; diff --git a/server/models/metrics.js b/server/models/metrics.js index 4021f934..8dfd9435 100644 --- a/server/models/metrics.js +++ b/server/models/metrics.js @@ -1,51 +1,51 @@ -export default (sequelize, { BOOLEAN, DATE, STRING }) => { +module.exports = (sequelize, { BOOLEAN, DATE, STRING }) => { const Metrics = sequelize.define( 'Metrics', { time: { - type: DATE(6), + type : DATE(6), defaultValue: sequelize.NOW, }, isInternal: { type: BOOLEAN, }, isChannel: { - type: BOOLEAN, + type : BOOLEAN, defaultValue: false, }, claimId: { - type: STRING, + type : STRING, defaultValue: null, }, ip: { - type: STRING, + type : STRING, defaultValue: null, }, request: { - type: STRING, + type : STRING, defaultValue: null, }, userAgent: { - type: STRING, + type : STRING, defaultValue: null, }, referrer: { - type: STRING, + type : STRING, defaultValue: null, }, routePath: { - type: STRING, + type : STRING, defaultValue: null, }, params: { - type: STRING, + type : STRING, defaultValue: null, }, }, { freezeTableName: true, - timestamps: false, // don't use default timestamps columns - indexes: [ + timestamps : false, // don't use default timestamps columns + indexes : [ { fields: ['isInternal', 'isChannel', 'time', 'claimId', 'routePath'], }, diff --git a/server/models/tor.js b/server/models/tor.js index 13cab732..a314e92d 100644 --- a/server/models/tor.js +++ b/server/models/tor.js @@ -1,17 +1,16 @@ -import logger from 'winston'; -import { details } from '@config/siteConfig'; -const { ipAddress } = details; +const logger = require('winston'); +const { details: { ipAddress } } = require('@config/siteConfig'); -export default (sequelize, { STRING }) => { +module.exports = (sequelize, { STRING }) => { const Tor = sequelize.define( 'Tor', { address: { - type: STRING, + type : STRING, allowNull: false, }, fingerprint: { - type: STRING, + type : STRING, allowNull: true, }, }, @@ -20,7 +19,7 @@ export default (sequelize, { STRING }) => { } ); - Tor.refreshTable = function() { + Tor.refreshTable = function () { let torList = []; return fetch(`https://check.torproject.org/api/bulk?ip=${ipAddress}&port=80`) .then(response => { @@ -31,7 +30,7 @@ export default (sequelize, { STRING }) => { // prep the records for (let i = 0; i < jsonResponse.length; i++) { torList.push({ - address: jsonResponse[i].Address, + address : jsonResponse[i].Address, fingerprint: jsonResponse[i].Fingerprint, }); } @@ -48,7 +47,7 @@ export default (sequelize, { STRING }) => { // return the new table return this.findAll({ attributes: ['address', 'fingerprint'], - raw: true, + raw : true, }); }) .catch(error => { diff --git a/server/models/trending.js b/server/models/trending.js index b2a3d663..5b9d206c 100644 --- a/server/models/trending.js +++ b/server/models/trending.js @@ -1,48 +1,47 @@ -import chainquery from 'chainquery'; +const chainquery = require('chainquery').default; -export default (sequelize, { BOOLEAN, DATE, FLOAT, INTEGER, STRING }) => { +module.exports = (sequelize, { BOOLEAN, DATE, FLOAT, INTEGER, STRING }) => { const Trending = sequelize.define( 'Trending', { - time: { - /* TODO: Historical analysis and log roll */ - type: DATE(6), + time: { /* TODO: Historical analysis and log roll */ + type : DATE(6), defaultValue: sequelize.NOW, }, isChannel: { - type: BOOLEAN, + type : BOOLEAN, defaultValue: false, }, claimId: { - type: STRING, + type : STRING, defaultValue: null, }, publisherId: { - type: STRING, + type : STRING, defaultValue: null, }, intervalViews: { - type: INTEGER, + type : INTEGER, defaultValue: 0, }, weight: { - type: FLOAT, + type : FLOAT, defaultValue: 0, }, zScore: { - type: FLOAT, + type : FLOAT, defaultValue: 0, }, pValue: { - type: FLOAT, + type : FLOAT, defaultValue: 0, }, // TODO: Calculate t-statistics }, { freezeTableName: true, - timestamps: false, // don't use default timestamps columns - indexes: [ + timestamps : false, // don't use default timestamps columns + indexes : [ { fields: ['claimId'], }, @@ -53,15 +52,16 @@ export default (sequelize, { BOOLEAN, DATE, FLOAT, INTEGER, STRING }) => { } ); - Trending.getTrendingWeightData = async ({ hours = 2, minutes = 0, limit = 20 } = {}) => { + Trending.getTrendingWeightData = async ({ + hours = 2, + minutes = 0, + limit = 20, + } = {}) => { let time = new Date(); time.setHours(time.getHours() - hours); time.setMinutes(time.getMinutes() - minutes); - const sqlTime = time - .toISOString() - .slice(0, 19) - .replace('T', ' '); + const sqlTime = time.toISOString().slice(0, 19).replace('T', ' '); const selectString = 'DISTINCT(claimId), weight'; const whereString = `isChannel = false and time > '${sqlTime}'`; @@ -89,7 +89,7 @@ export default (sequelize, { BOOLEAN, DATE, FLOAT, INTEGER, STRING }) => { }, }); - return claimData.map(claimData => { + return claimData.map((claimData) => { return Object.assign(trendingClaims[claimData.claim_id], claimData.dataValues); }); }; diff --git a/server/models/user.js b/server/models/user.js index bee1bd6c..831566a8 100644 --- a/server/models/user.js +++ b/server/models/user.js @@ -1,17 +1,17 @@ 'use strict'; -import bcrypt from 'bcrypt'; -import logger from 'winston'; +const bcrypt = require('bcrypt'); +const logger = require('winston'); -export default (sequelize, { STRING }) => { +module.exports = (sequelize, { STRING }) => { const User = sequelize.define( 'User', { userName: { - type: STRING, + type : STRING, allowNull: false, }, password: { - type: STRING, + type : STRING, allowNull: false, }, }, @@ -24,11 +24,11 @@ export default (sequelize, { STRING }) => { User.hasOne(db.Channel); }; - User.prototype.comparePassword = function(password) { + User.prototype.comparePassword = function (password) { return bcrypt.compare(password, this.password); }; - User.prototype.changePassword = function(newPassword) { + User.prototype.changePassword = function (newPassword) { return new Promise((resolve, reject) => { // generate a salt string to use for hashing bcrypt.genSalt((saltError, salt) => { @@ -46,7 +46,8 @@ export default (sequelize, { STRING }) => { return; } // replace the current password with the new hash - this.update({ password: hash }) + this + .update({password: hash}) .then(() => { resolve(); }) diff --git a/server/models/utils/createClaimRecordData.js b/server/models/utils/createClaimRecordData.js index ebceb8c2..547b6158 100644 --- a/server/models/utils/createClaimRecordData.js +++ b/server/models/utils/createClaimRecordData.js @@ -1,37 +1,44 @@ -import db from 'server/models'; +const db = require('../index.js'); -export const createClaimRecordDataAfterPublish = ( - certificateId, - channelName, - fileName, - fileType, - publishParams, - publishResults -) => { +const createClaimRecordDataAfterPublish = (certificateId, channelName, fileName, fileType, publishParams, publishResults) => { const { name, - metadata: { title, description, thumbnail, nsfw }, + metadata: { + title, + description, + thumbnail, + nsfw, + }, claim_address: address, bid: amount, } = publishParams; - const { claim_id: claimId, txid, nout } = publishResults; + const { + claim_id: claimId, + txid, + nout, + } = publishResults; - return db.Claim.getCurrentHeight().then(height => { - return { - name, - claimId, - title, - description, - address, - thumbnail, - outpoint: `${txid}:${nout}`, - height, - contentType: fileType, - nsfw, - amount, - certificateId, - channelName, - }; - }); + return db.Claim.getCurrentHeight() + .then(height => { + return { + name, + claimId, + title, + description, + address, + thumbnail, + outpoint : `${txid}:${nout}`, + height, + contentType: fileType, + nsfw, + amount, + certificateId, + channelName, + }; + }); +}; + +module.exports = { + createClaimRecordDataAfterPublish, }; diff --git a/server/models/utils/createDatabaseIfNotExists.js b/server/models/utils/createDatabaseIfNotExists.js index dd2cea49..7349b492 100644 --- a/server/models/utils/createDatabaseIfNotExists.js +++ b/server/models/utils/createDatabaseIfNotExists.js @@ -1,15 +1,14 @@ -import Sequelize from 'sequelize'; -import { database, username, password } from '@config/mysqlConfig'; +const Sequelize = require('sequelize'); +const {database, username, password} = require('@config/mysqlConfig'); const createDatabaseIfNotExists = () => { const sequelize = new Sequelize('', username, password, { - dialect: 'mysql', - logging: false, + dialect : 'mysql', + logging : false, operatorsAliases: false, }); return new Promise((resolve, reject) => { - sequelize - .query(`CREATE DATABASE IF NOT EXISTS ${database};`) + sequelize.query(`CREATE DATABASE IF NOT EXISTS ${database};`) .then(() => { resolve(); }) @@ -19,4 +18,4 @@ const createDatabaseIfNotExists = () => { }); }; -export default createDatabaseIfNotExists; +module.exports = createDatabaseIfNotExists; diff --git a/server/models/utils/createFileRecordData.js b/server/models/utils/createFileRecordData.js index a7d973cc..fdcb9ce0 100644 --- a/server/models/utils/createFileRecordData.js +++ b/server/models/utils/createFileRecordData.js @@ -1,11 +1,22 @@ -import getMediaDimensions from 'server/utils/getMediaDimensions.js'; +const getMediaDimensions = require('../../utils/getMediaDimensions.js'); -export async function createFileRecordDataAfterGet(resolveResult, getResult) { - const { name, claimId, outpoint, contentType: fileType } = resolveResult; +async function createFileRecordDataAfterGet (resolveResult, getResult) { + const { + name, + claimId, + outpoint, + contentType: fileType, + } = resolveResult; - const { file_name: fileName, download_path: filePath } = getResult; + const { + file_name: fileName, + download_path: filePath, + } = getResult; - const { height: fileHeight, width: fileWidth } = await getMediaDimensions(fileType, filePath); + const { + height: fileHeight, + width: fileWidth, + } = await getMediaDimensions(fileType, filePath); return { name, @@ -19,17 +30,22 @@ export async function createFileRecordDataAfterGet(resolveResult, getResult) { }; } -export async function createFileRecordDataAfterPublish( - fileName, - fileType, - publishParams, - publishResults -) { - const { name, file_path: filePath } = publishParams; +async function createFileRecordDataAfterPublish (fileName, fileType, publishParams, publishResults) { + const { + name, + file_path: filePath, + } = publishParams; - const { claim_id: claimId, txid, nout } = publishResults; + const { + claim_id: claimId, + txid, + nout, + } = publishResults; - const { height: fileHeight, width: fileWidth } = await getMediaDimensions(fileType, filePath); + const { + height: fileHeight, + width: fileWidth, + } = await getMediaDimensions(fileType, filePath); return { name, @@ -42,3 +58,8 @@ export async function createFileRecordDataAfterPublish( fileType, }; } + +module.exports = { + createFileRecordDataAfterGet, + createFileRecordDataAfterPublish, +}; diff --git a/server/models/utils/returnShortId.js b/server/models/utils/returnShortId.js index 5c9a6bc8..9c362c61 100644 --- a/server/models/utils/returnShortId.js +++ b/server/models/utils/returnShortId.js @@ -16,10 +16,10 @@ const returnShortId = (claimsArray, longId) => { shortIdLength += 1; shortId = longId.substring(0, shortIdLength); possibleMatches = possibleMatches.filter(element => { - return element.claimId && element.claimId.substring(0, shortIdLength) === shortId; + return (element.claimId && (element.claimId.substring(0, shortIdLength) === shortId)); }); } return shortId; }; -export default returnShortId; +module.exports = returnShortId; diff --git a/server/models/utils/returnShortId.test.js b/server/models/utils/returnShortId.test.js index 9b2d49d8..56b8cbb9 100644 --- a/server/models/utils/returnShortId.test.js +++ b/server/models/utils/returnShortId.test.js @@ -1,36 +1,36 @@ -import chai from 'chai'; +const chai = require('chai'); const expect = chai.expect; -describe('#parsePublishApiRequestBody()', function() { +describe('#parsePublishApiRequestBody()', function () { const returnShortId = require('./returnShortId.js'); let dummyClaimsArray; let dummyLongId; - it('should thow an error if the claimId is not in the claim list', function() { + it('should thow an error if the claimId is not in the claim list', function () { dummyClaimsArray = [ - { claimId: 'a123456789' }, - { claimId: 'b123456789' }, - { claimId: 'c123456789' }, + {claimId: 'a123456789'}, + {claimId: 'b123456789'}, + {claimId: 'c123456789'}, ]; dummyLongId = 'xxxxxxxxxx'; expect(returnShortId.bind(this, dummyClaimsArray, dummyLongId)).to.throw(); }); - it('should return the shortest unique claim id', function() { + it('should return the shortest unique claim id', function () { dummyClaimsArray = [ - { claimId: 'a123456789' }, - { claimId: 'b123456789' }, - { claimId: 'c123456789' }, + {claimId: 'a123456789'}, + {claimId: 'b123456789'}, + {claimId: 'c123456789'}, ]; dummyLongId = 'c123456789'; expect(returnShortId(dummyClaimsArray, dummyLongId)).to.equal('c'); }); - it('if there is a conflict between unqiue ids, it should give preference to the one with the lowest height', function() { + it('if there is a conflict between unqiue ids, it should give preference to the one with the lowest height', function () { dummyClaimsArray = [ - { claimId: 'a123456789', height: 10 }, - { claimId: 'ab12345678', height: 11 }, - { claimId: 'ab12341111', height: 12 }, + {claimId: 'a123456789', height: 10}, + {claimId: 'ab12345678', height: 11}, + {claimId: 'ab12341111', height: 12}, ]; dummyLongId = 'a123456789'; expect(returnShortId(dummyClaimsArray, dummyLongId)).to.equal('a'); diff --git a/server/models/utils/trendingAnalysis.js b/server/models/utils/trendingAnalysis.js index 5404490c..759d10c6 100644 --- a/server/models/utils/trendingAnalysis.js +++ b/server/models/utils/trendingAnalysis.js @@ -5,7 +5,7 @@ const MAX_P_PRECISION = Math.exp(-16); // Rought estimation of V8 precision, -16 const MIN_P = -6.44357455534; // v8 float 0.0...0 const MAX_P = 6.44357455534; // v8 float 1.0...0 -const getMean = numArr => { +const getMean = (numArr) => { let total = 0; let length = numArr.length; // store local to reduce potential prop lookups @@ -17,10 +17,12 @@ const getMean = numArr => { }; const getStandardDeviation = (numArr, mean) => { - return Math.sqrt(numArr.reduce((sq, n) => sq + Math.pow(n - mean, 2), 0) / (numArr.length - 1)); + return Math.sqrt(numArr.reduce((sq, n) => ( + sq + Math.pow(n - mean, 2) + ), 0) / (numArr.length - 1)); }; -export const getInformationFromValues = numArr => { +const getInformationFromValues = (numArr) => { let mean = getMean(numArr); return { @@ -29,10 +31,9 @@ export const getInformationFromValues = numArr => { }; }; -export const getZScore = (value, mean, sDeviation) => - sDeviation !== 0 ? (value - mean) / sDeviation : 0; +const getZScore = (value, mean, sDeviation) => (sDeviation !== 0 ? (value - mean) / sDeviation : 0); -export const getFastPValue = zScore => { +const getFastPValue = (zScore) => { if (zScore <= MIN_P) { return 0; } @@ -46,10 +47,7 @@ export const getFastPValue = zScore => { let term = 1; while (Math.abs(term) > MAX_P_PRECISION) { - term = - (((ONE_DIV_SQRT_2PI * Math.pow(-1, k) * Math.pow(zScore, k)) / (2 * k + 1) / Math.pow(2, k)) * - Math.pow(zScore, k + 1)) / - factorialK; + term = ONE_DIV_SQRT_2PI * Math.pow(-1, k) * Math.pow(zScore, k) / (2 * k + 1) / Math.pow(2, k) * Math.pow(zScore, k + 1) / factorialK; sum += term; k++; factorialK *= k; @@ -59,4 +57,11 @@ export const getFastPValue = zScore => { return sum; }; -export const getWeight = (zScore, pValue) => zScore * pValue; +const getWeight = (zScore, pValue) => (zScore * pValue); + +module.exports = { + getInformationFromValues, + getZScore, + getFastPValue, + getWeight, +}; diff --git a/server/models/views.js b/server/models/views.js index 6859cf26..9bb6f218 100644 --- a/server/models/views.js +++ b/server/models/views.js @@ -1,32 +1,32 @@ -export default (sequelize, { BOOLEAN, DATE, STRING }) => { +module.exports = (sequelize, { BOOLEAN, DATE, STRING }) => { const Views = sequelize.define( 'Views', { time: { - type: DATE(6), + type : DATE(6), defaultValue: sequelize.NOW, }, isChannel: { - type: BOOLEAN, + type : BOOLEAN, defaultValue: false, }, claimId: { - type: STRING, + type : STRING, defaultValue: null, }, publisherId: { - type: STRING, + type : STRING, defaultValue: null, }, ip: { - type: STRING, + type : STRING, defaultValue: null, }, }, { freezeTableName: true, - timestamps: false, // don't use default timestamps columns - indexes: [ + timestamps : false, // don't use default timestamps columns + indexes : [ { fields: ['time', 'isChannel', 'claimId', 'publisherId', 'ip'], }, @@ -34,15 +34,15 @@ export default (sequelize, { BOOLEAN, DATE, STRING }) => { } ); - Views.getUniqueViews = ({ hours = 0, minutes = 30 } = {}) => { + Views.getUniqueViews = ({ + hours = 0, + minutes = 30, + } = {}) => { let time = new Date(); time.setHours(time.getHours() - hours); time.setMinutes(time.getMinutes() - minutes); - const sqlTime = time - .toISOString() - .slice(0, 19) - .replace('T', ' '); + const sqlTime = time.toISOString().slice(0, 19).replace('T', ' '); const selectString = 'claimId, publisherId, isChannel, COUNT(DISTINCT ip) as views'; const groupString = 'claimId, publisherId, isChannel'; @@ -53,13 +53,13 @@ export default (sequelize, { BOOLEAN, DATE, STRING }) => { ); }; - Views.getGetUniqueViewsbByClaimId = claimId => { + Views.getGetUniqueViewsbByClaimId = (claimId) => { return Views.count({ where: { claimId, }, distinct: true, - col: 'ip', + col : 'ip', }); }; diff --git a/server/render/renderFullPage.js b/server/render/renderFullPage.js index fb2b461a..7454d043 100644 --- a/server/render/renderFullPage.js +++ b/server/render/renderFullPage.js @@ -1,11 +1,11 @@ -import md5File from 'md5-file'; -import path from 'path'; +const md5File = require('md5-file'); +const path = require('path'); const bundlePath = path.resolve('./public/bundle/bundle.js'); const bundleHash = md5File.sync(bundlePath); const shortBundleHash = bundleHash.substring(0, 4); -export default (helmet, html, preloadedState) => { +module.exports = (helmet, html, preloadedState) => { // take the html and preloadedState and return the full page return ` diff --git a/server/routes/api/index.js b/server/routes/api/index.js index 44e89c3a..a2b1c2b8 100644 --- a/server/routes/api/index.js +++ b/server/routes/api/index.js @@ -1,87 +1,65 @@ // middleware -import multipartMiddleware from 'server/middleware/multipartMiddleware'; -import torCheckMiddleware from 'server/middleware/torCheckMiddleware'; +const { autoblockPublishMiddleware, autoblockPublishBodyMiddleware } = require('../../middleware/autoblockPublishMiddleware'); +const multipartMiddleware = require('../../middleware/multipartMiddleware'); +const torCheckMiddleware = require('../../middleware/torCheckMiddleware'); // route handlers -import channelAvailability from 'server/controllers/api/channel/availability'; -import channelClaims from 'server/controllers/api/channel/claims'; -import channelData from 'server/controllers/api/channel/data'; -import channelShortId from 'server/controllers/api/channel/shortId'; -import claimAvailability from 'server/controllers/api/claim/availability'; -import claimData from 'server/controllers/api/claim/data/'; -import claimGet from 'server/controllers/api/claim/get'; -import claimList from 'server/controllers/api/claim/list'; -import claimLongId from 'server/controllers/api/claim/longId'; -import claimPublish from 'server/controllers/api/claim/publish'; -import claimAbandon from 'server/controllers/api/claim/abandon'; -import claimUpdate from 'server/controllers/api/claim/update'; -import claimResolve from 'server/controllers/api/claim/resolve'; -import claimShortId from 'server/controllers/api/claim/shortId'; -import claimViews from 'server/controllers/api/claim/views'; -import fileAvailability from 'server/controllers/api/file/availability'; -import specialClaims from 'server/controllers/api/special/claims'; -import userPassword from 'server/controllers/api/user/password'; -import publishingConfig from 'server/controllers/api/config/site/publishing'; -import getTorList from 'server/controllers/api/tor'; -import getBlockedList from 'server/controllers/api/blocked'; -import getOEmbedData from 'server/controllers/api/oEmbed'; -const { - autoblockPublishMiddleware, - autoblockPublishBodyMiddleware, -} = require('server/middleware/autoblockPublishMiddleware'); +const channelAvailability = require('../../controllers/api/channel/availability'); +const channelClaims = require('../../controllers/api/channel/claims'); +const channelData = require('../../controllers/api/channel/data'); +const channelShortId = require('../../controllers/api/channel/shortId'); +const claimAvailability = require('../../controllers/api/claim/availability'); +const claimData = require('../../controllers/api/claim/data/'); +const claimGet = require('../../controllers/api/claim/get'); +const claimList = require('../../controllers/api/claim/list'); +const claimLongId = require('../../controllers/api/claim/longId'); +const claimPublish = require('../../controllers/api/claim/publish'); +const claimAbandon = require('../../controllers/api/claim/abandon'); +const claimUpdate = require('../../controllers/api/claim/update'); +const claimResolve = require('../../controllers/api/claim/resolve'); +const claimShortId = require('../../controllers/api/claim/shortId'); +const claimViews = require('../../controllers/api/claim/views'); +const fileAvailability = require('../../controllers/api/file/availability'); +const specialClaims = require('../../controllers/api/special/claims'); +const userPassword = require('../../controllers/api/user/password'); +const publishingConfig = require('../../controllers/api/config/site/publishing'); +const getTorList = require('../../controllers/api/tor'); +const getBlockedList = require('../../controllers/api/blocked'); +const getOEmbedData = require('../../controllers/api/oEmbed'); export default { // homepage routes - '/api/homepage/data/channels': { controller: [torCheckMiddleware, channelData] }, + '/api/homepage/data/channels' : { controller: [ torCheckMiddleware, channelData ] }, // channel routes - '/api/channel/availability/:name': { controller: [torCheckMiddleware, channelAvailability] }, - '/api/channel/short-id/:longId/:name': { controller: [torCheckMiddleware, channelShortId] }, - '/api/channel/data/:channelName/:channelClaimId': { - controller: [torCheckMiddleware, channelData], - }, - '/api/channel/claims/:channelName/:channelClaimId/:page': { - controller: [torCheckMiddleware, channelClaims], - }, + '/api/channel/availability/:name' : { controller: [ torCheckMiddleware, channelAvailability ] }, + '/api/channel/short-id/:longId/:name' : { controller: [ torCheckMiddleware, channelShortId ] }, + '/api/channel/data/:channelName/:channelClaimId' : { controller: [ torCheckMiddleware, channelData ] }, + '/api/channel/claims/:channelName/:channelClaimId/:page': { controller: [ torCheckMiddleware, channelClaims ] }, // sepcial routes - '/api/special/:name/:page': { controller: [torCheckMiddleware, specialClaims] }, + '/api/special/:name/:page': { controller: [ torCheckMiddleware, specialClaims ] }, // claim routes - '/api/claim/availability/:name': { controller: [torCheckMiddleware, claimAvailability] }, - '/api/claim/data/:claimName/:claimId': { controller: [torCheckMiddleware, claimData] }, - '/api/claim/get/:name/:claimId': { controller: [torCheckMiddleware, claimGet] }, - '/api/claim/list/:name': { controller: [torCheckMiddleware, claimList] }, - '/api/claim/long-id': { method: 'post', controller: [torCheckMiddleware, claimLongId] }, // note: should be a 'get' - '/api/claim/publish': { - method: 'post', - controller: [ - torCheckMiddleware, - autoblockPublishMiddleware, - multipartMiddleware, - autoblockPublishBodyMiddleware, - claimPublish, - ], - }, - '/api/claim/update': { - method: 'post', - controller: [torCheckMiddleware, multipartMiddleware, claimUpdate], - }, - '/api/claim/abandon': { - method: 'post', - controller: [torCheckMiddleware, multipartMiddleware, claimAbandon], - }, - '/api/claim/resolve/:name/:claimId': { controller: [torCheckMiddleware, claimResolve] }, - '/api/claim/short-id/:longId/:name': { controller: [torCheckMiddleware, claimShortId] }, - '/api/claim/views/:claimId': { controller: [torCheckMiddleware, claimViews] }, + '/api/claim/availability/:name' : { controller: [ torCheckMiddleware, claimAvailability ] }, + '/api/claim/data/:claimName/:claimId' : { controller: [ torCheckMiddleware, claimData ] }, + '/api/claim/get/:name/:claimId' : { controller: [ torCheckMiddleware, claimGet ] }, + '/api/claim/list/:name' : { controller: [ torCheckMiddleware, claimList ] }, + '/api/claim/long-id' : { method: 'post', controller: [ torCheckMiddleware, claimLongId ] }, // note: should be a 'get' + '/api/claim/publish' : { method: 'post', controller: [ torCheckMiddleware, autoblockPublishMiddleware, multipartMiddleware, autoblockPublishBodyMiddleware, claimPublish ] }, + '/api/claim/update' : { method: 'post', controller: [ torCheckMiddleware, multipartMiddleware, claimUpdate ] }, + '/api/claim/abandon' : { method: 'post', controller: [ torCheckMiddleware, multipartMiddleware, claimAbandon ] }, + '/api/claim/resolve/:name/:claimId' : { controller: [ torCheckMiddleware, claimResolve ] }, + '/api/claim/short-id/:longId/:name' : { controller: [ torCheckMiddleware, claimShortId ] }, + '/api/claim/views/:claimId' : { controller: [ torCheckMiddleware, claimViews ] }, // file routes - '/api/file/availability/:name/:claimId': { controller: [torCheckMiddleware, fileAvailability] }, + '/api/file/availability/:name/:claimId': { controller: [ torCheckMiddleware, fileAvailability ] }, // user routes - '/api/user/password/': { method: 'put', controller: [torCheckMiddleware, userPassword] }, + '/api/user/password/' : { method: 'put', controller: [ torCheckMiddleware, userPassword ] }, // configs - '/api/config/site/publishing': { controller: [torCheckMiddleware, publishingConfig] }, + '/api/config/site/publishing' : { controller: [ torCheckMiddleware, publishingConfig ] }, // tor - '/api/tor': { controller: [torCheckMiddleware, getTorList] }, + '/api/tor' : { controller: [ torCheckMiddleware, getTorList ] }, // blocked - '/api/blocked': { controller: [torCheckMiddleware, getBlockedList] }, + '/api/blocked' : { controller: [ torCheckMiddleware, getBlockedList ] }, // open embed - '/api/oembed': { controller: [torCheckMiddleware, getOEmbedData] }, + '/api/oembed' : { controller: [ torCheckMiddleware, getOEmbedData ] }, }; diff --git a/server/routes/assets/index.js b/server/routes/assets/index.js index eed94b7c..14a724b0 100644 --- a/server/routes/assets/index.js +++ b/server/routes/assets/index.js @@ -1,19 +1,11 @@ -import serveByClaim from 'server/controllers/assets/serveByClaim'; -import serveByIdentifierAndClaim from 'server/controllers/assets/serveByIdentifierAndClaim'; +const serveByClaim = require('../../controllers/assets/serveByClaim'); +const serveByIdentifierAndClaim = require('../../controllers/assets/serveByIdentifierAndClaim'); // TODO: Adjust build & sources to use import/export everywhere const Actions = require('@actions').default; const Sagas = require('@sagas').default; export default { - '/:identifier/:claim': { - controller: serveByIdentifierAndClaim, - action: Actions.onHandleShowPageUri, - saga: Sagas.handleShowPageUri, - }, - '/:claim': { - controller: serveByClaim, - action: Actions.onHandleShowPageUri, - saga: Sagas.handleShowPageUri, - }, + '/:identifier/:claim': { controller: serveByIdentifierAndClaim, action: Actions.onHandleShowPageUri, saga: Sagas.handleShowPageUri }, + '/:claim' : { controller: serveByClaim, action: Actions.onHandleShowPageUri, saga: Sagas.handleShowPageUri }, }; diff --git a/server/routes/auth/index.js b/server/routes/auth/index.js index f76ab4e2..26a90686 100644 --- a/server/routes/auth/index.js +++ b/server/routes/auth/index.js @@ -1,15 +1,12 @@ -import speechPassport from '../../speechPassport'; -import handleSignupRequest from '../../controllers/auth/signup'; -import handleLoginRequest from '../../controllers/auth/login'; -import handleLogoutRequest from '../../controllers/auth/logout'; -import handleUserRequest from '../../controllers/auth/user'; +const speechPassport = require('../../speechPassport'); +const handleSignupRequest = require('../../controllers/auth/signup'); +const handleLoginRequest = require('../../controllers/auth/login'); +const handleLogoutRequest = require('../../controllers/auth/logout'); +const handleUserRequest = require('../../controllers/auth/user'); export default { - '/signup': { - method: 'post', - controller: [speechPassport.authenticate('local-signup'), handleSignupRequest], - }, - '/auth': { method: 'post', controller: handleLoginRequest }, + '/signup': { method: 'post', controller: [ speechPassport.authenticate('local-signup'), handleSignupRequest ] }, + '/auth' : { method: 'post', controller: handleLoginRequest }, '/logout': { controller: handleLogoutRequest }, - '/user': { controller: handleUserRequest }, + '/user' : { controller: handleUserRequest }, }; diff --git a/server/routes/pages/index.js b/server/routes/pages/index.js index f9838057..99aa7902 100644 --- a/server/routes/pages/index.js +++ b/server/routes/pages/index.js @@ -1,25 +1,21 @@ import handlePageRequest from '../../controllers/pages/sendReactApp'; -import handleVideoEmbedRequest from '../../controllers/pages/sendVideoEmbedPage'; -import redirect from '../../controllers/utils/redirect'; +const handleVideoEmbedRequest = require('../../controllers/pages/sendVideoEmbedPage'); +const redirect = require('../../controllers/utils/redirect'); // TODO: Adjust build & sources to use import/export everywhere const Actions = require('@actions').default; const Sagas = require('@sagas').default; export default { - '/': { - controller: handlePageRequest, - action: Actions.onHandleShowHomepage, - saga: Sagas.handleShowHomepage, - }, - '/login': { controller: handlePageRequest }, - '/about': { controller: handlePageRequest }, - '/tos': { controller: handlePageRequest }, - '/faq': { controller: handlePageRequest }, - '/trending': { controller: redirect('/popular') }, - '/popular': { controller: handlePageRequest }, - '/new': { controller: handlePageRequest }, - '/edit/:claimId': { controller: handlePageRequest }, - '/multisite': { controller: handlePageRequest }, - '/video-embed/:name/:claimId/:config?': { controller: handleVideoEmbedRequest }, // for twitter + '/' : { controller: handlePageRequest, action: Actions.onHandleShowHomepage, saga: Sagas.handleShowHomepage }, + '/login' : { controller: handlePageRequest }, + '/about' : { controller: handlePageRequest }, + '/tos' : { controller: handlePageRequest }, + '/faq' : { controller: handlePageRequest }, + '/trending' : { controller: redirect('/popular') }, + '/popular' : { controller: handlePageRequest }, + '/new' : { controller: handlePageRequest }, + '/edit/:claimId' : { controller: handlePageRequest }, + '/multisite' : { controller: handlePageRequest }, + '/video-embed/:name/:claimId/:config?': { controller: handleVideoEmbedRequest }, // for twitter }; diff --git a/server/speechPassport/index.js b/server/speechPassport/index.js index c746e32c..60ec1808 100644 --- a/server/speechPassport/index.js +++ b/server/speechPassport/index.js @@ -1,12 +1,12 @@ -import passport from 'passport'; -import localLoginStrategy from './utils/local-login.js'; -import localSignupStrategy from './utils/local-signup.js'; -import serializeUser from './utils/serializeUser.js'; -import deserializeUser from './utils/deserializeUser.js'; +const passport = require('passport'); +const localLoginStrategy = require('./utils/local-login.js'); +const localSignupStrategy = require('./utils/local-signup.js'); +const serializeUser = require('./utils/serializeUser.js'); +const deserializeUser = require('./utils/deserializeUser.js'); passport.deserializeUser(deserializeUser); passport.serializeUser(serializeUser); passport.use('local-login', localLoginStrategy); passport.use('local-signup', localSignupStrategy); -export default passport; +module.exports = passport; diff --git a/server/speechPassport/utils/deserializeUser.js b/server/speechPassport/utils/deserializeUser.js index 80d723c6..4697bd10 100644 --- a/server/speechPassport/utils/deserializeUser.js +++ b/server/speechPassport/utils/deserializeUser.js @@ -3,4 +3,4 @@ const deserializeUser = (user, done) => { done(null, user); }; -export default deserializeUser; +module.exports = deserializeUser; diff --git a/server/speechPassport/utils/local-login.js b/server/speechPassport/utils/local-login.js index a2c4cb3a..d9f889c8 100644 --- a/server/speechPassport/utils/local-login.js +++ b/server/speechPassport/utils/local-login.js @@ -1,15 +1,15 @@ -import db from 'server/models'; const PassportLocalStrategy = require('passport-local').Strategy; const logger = require('winston'); +const db = require('../../models'); -const returnUserAndChannelInfo = userInstance => { +const returnUserAndChannelInfo = (userInstance) => { return new Promise((resolve, reject) => { let userInfo = {}; userInfo['id'] = userInstance.id; userInfo['userName'] = userInstance.userName; userInstance .getChannel() - .then(({ channelName, channelClaimId }) => { + .then(({channelName, channelClaimId}) => { userInfo['channelName'] = channelName; userInfo['channelClaimId'] = channelClaimId; return db.Certificate.getShortChannelIdFromLongChannelId(channelClaimId, channelName); @@ -24,26 +24,26 @@ const returnUserAndChannelInfo = userInstance => { }); }; -const Strategy = new PassportLocalStrategy( +module.exports = new PassportLocalStrategy( { usernameField: 'username', passwordField: 'password', }, (username, password, done) => { - return db.User.findOne({ - where: { userName: username }, - }) + return db.User + .findOne({ + where: {userName: username}, + }) .then(user => { if (!user) { logger.debug('no user found'); - return done(null, false, { message: 'Incorrect username or password' }); + return done(null, false, {message: 'Incorrect username or password'}); } - return user - .comparePassword(password) + return user.comparePassword(password) .then(isMatch => { if (!isMatch) { logger.debug('incorrect password'); - return done(null, false, { message: 'Incorrect username or password' }); + return done(null, false, {message: 'Incorrect username or password'}); } logger.debug('Password was a match, returning User'); return returnUserAndChannelInfo(user) @@ -63,5 +63,3 @@ const Strategy = new PassportLocalStrategy( }); } ); - -export default Strategy; diff --git a/server/speechPassport/utils/local-signup.js b/server/speechPassport/utils/local-signup.js index 42cbd451..2662b721 100644 --- a/server/speechPassport/utils/local-signup.js +++ b/server/speechPassport/utils/local-signup.js @@ -1,12 +1,10 @@ -import { createChannel } from 'server/lbrynet'; const PassportLocalStrategy = require('passport-local').Strategy; +const { createChannel } = require('../../lbrynet'); const logger = require('winston'); -const db = require('server/models'); -const { - publishing: { closedRegistration }, -} = require('@config/siteConfig'); +const db = require('../../models'); +const { publishing: { closedRegistration } } = require('@config/siteConfig'); -const Strategy = new PassportLocalStrategy( +module.exports = new PassportLocalStrategy( { usernameField: 'username', passwordField: 'password', @@ -30,23 +28,19 @@ const Strategy = new PassportLocalStrategy( logger.verbose('userData >', userData); // create user record const channelData = { - channelName: `@${username}`, + channelName : `@${username}`, channelClaimId: tx.claim_id, }; logger.verbose('channelData >', channelData); // create certificate record const certificateData = { claimId: tx.claim_id, - name: `@${username}`, + name : `@${username}`, // address, }; logger.verbose('certificateData >', certificateData); // save user and certificate to db - return Promise.all([ - db.User.create(userData), - db.Channel.create(channelData), - db.Certificate.create(certificateData), - ]); + return Promise.all([db.User.create(userData), db.Channel.create(channelData), db.Certificate.create(certificateData)]); }) .then(([newUser, newChannel, newCertificate]) => { logger.verbose('user and certificate successfully created'); @@ -60,10 +54,7 @@ const Strategy = new PassportLocalStrategy( }) .then(() => { logger.verbose('user and certificate successfully associated'); - return db.Certificate.getShortChannelIdFromLongChannelId( - userInfo.channelClaimId, - userInfo.channelName - ); + return db.Certificate.getShortChannelIdFromLongChannelId(userInfo.channelClaimId, userInfo.channelName); }) .then(shortChannelId => { userInfo['shortChannelId'] = shortChannelId; @@ -75,4 +66,3 @@ const Strategy = new PassportLocalStrategy( }); } ); -export default Strategy; diff --git a/server/speechPassport/utils/serializeUser.js b/server/speechPassport/utils/serializeUser.js index c1d7b033..ebb44c82 100644 --- a/server/speechPassport/utils/serializeUser.js +++ b/server/speechPassport/utils/serializeUser.js @@ -3,4 +3,4 @@ const serializeUser = (user, done) => { done(null, user); }; -export default serializeUser; +module.exports = serializeUser; diff --git a/server/task-scripts/update-channel-names.js b/server/task-scripts/update-channel-names.js index 9f698aeb..2ea7e9ec 100644 --- a/server/task-scripts/update-channel-names.js +++ b/server/task-scripts/update-channel-names.js @@ -1,18 +1,17 @@ // load dependencies -import logger from 'winston'; -import db from 'server/models'; +const logger = require('winston'); +const db = require('../models'); require('../helpers/configureLogger.js')(logger); let totalClaims = 0; let totalClaimsNoCertificate = 0; -db.sequelize - .sync() // sync sequelize +db.sequelize.sync() // sync sequelize .then(() => { logger.info('finding claims with no channels'); return db.Claim.findAll({ where: { - channelName: null, + channelName : null, certificateId: { $ne: null, }, @@ -22,9 +21,10 @@ db.sequelize .then(claimsArray => { totalClaims = claimsArray.length; const claimsUpdatePromises = claimsArray.map(claim => { - return db.Certificate.findOne({ - where: { claimId: claim.get('certificateId') }, - }) + return db.Certificate + .findOne({ + where: { claimId: claim.get('certificateId') }, + }) .then(certificate => { // if a certificate is found... if (certificate) { @@ -49,6 +49,6 @@ db.sequelize logger.info('total claims found with no matching certificate record', totalClaimsNoCertificate); logger.debug('all done'); }) - .catch(error => { + .catch((error) => { logger.error(error); }); diff --git a/server/task-scripts/update-password.js b/server/task-scripts/update-password.js index 934ed6ed..f740d543 100644 --- a/server/task-scripts/update-password.js +++ b/server/task-scripts/update-password.js @@ -1,6 +1,6 @@ // load dependencies -import logger from 'winston'; -import db from '../models'; +const logger = require('winston'); +const db = require('../models'); // configure logging require('../helpers/configureLogger.js')(logger); @@ -11,8 +11,7 @@ logger.debug('old password:', oldPassword); const newPassword = process.argv[4]; logger.debug('new password:', newPassword); -db.sequelize - .sync() // sync sequelize +db.sequelize.sync() // sync sequelize .then(() => { logger.info('finding user profile'); return db.User.findOne({ @@ -25,7 +24,10 @@ db.sequelize if (!user) { throw new Error('no user found'); } - return Promise.all([user.comparePassword(oldPassword), user]); + return Promise.all([ + user.comparePassword(oldPassword), + user, + ]); }) .then(([isMatch, user]) => { if (!isMatch) { @@ -37,6 +39,6 @@ db.sequelize .then(() => { logger.debug('Password successfully updated'); }) - .catch(error => { + .catch((error) => { logger.error(error); }); diff --git a/server/utils/awaitFileSize.js b/server/utils/awaitFileSize.js index 84724b81..c1a9543e 100644 --- a/server/utils/awaitFileSize.js +++ b/server/utils/awaitFileSize.js @@ -1,5 +1,5 @@ -import { getFileListFileByOutpoint } from 'server/lbrynet'; -import logger from 'winston'; +const { getFileListFileByOutpoint } = require('server/lbrynet'); +const logger = require('winston'); function delay(t) { return new Promise(function(resolve) { @@ -27,4 +27,4 @@ const awaitFileSize = (outpoint, size, interval, timeout) => { return checkFileList(); }; -export default awaitFileSize; +module.exports = awaitFileSize; diff --git a/server/utils/blockList.js b/server/utils/blockList.js index a3737564..0c7637c2 100644 --- a/server/utils/blockList.js +++ b/server/utils/blockList.js @@ -1,32 +1,26 @@ -import logger from 'winston'; -import db from 'server/models'; +const logger = require('winston'); +const db = require('../models'); let blockList = new Set(); -export const setupBlockList = (intervalInSeconds = 60) => { +const setupBlockList = (intervalInSeconds = 60) => { const fetchList = () => { return new Promise((resolve, reject) => { db.Blocked.getBlockList() - .then(result => { + .then((result) => { blockList.clear(); if (result.length > 0) { - result.map(item => { - blockList.add(item.dataValues.outpoint); - }); + result.map((item) => { blockList.add(item.dataValues.outpoint) }); resolve(); } else reject(); }) - .catch(e => { - console.error('list was empty', e); - }); + .catch(e => { console.error('list was empty', e) }); }); }; - setInterval(() => { - fetchList(); - }, intervalInSeconds * 1000); + setInterval(() => { fetchList() }, intervalInSeconds * 1000); return fetchList(); }; - -export const isBlocked = outpoint => { - return blockList.has(outpoint); +module.exports = { + isBlocked: (outpoint) => { return blockList.has(outpoint) }, + setupBlockList, }; diff --git a/server/utils/configureLogging.js b/server/utils/configureLogging.js index 985730ff..49af20bb 100644 --- a/server/utils/configureLogging.js +++ b/server/utils/configureLogging.js @@ -1,9 +1,9 @@ -import logger from 'winston'; +const logger = require('winston'); -import config from '@config/loggerConfig'; +const config = require('@config/loggerConfig'); const { logLevel } = config; -export default function configureLogging() { +function configureLogging () { logger.info('configuring winston logger...'); if (!config) { return logger.warn('No logger config found'); @@ -14,12 +14,12 @@ export default function configureLogging() { // configure the winston logger logger.configure({ transports: [ - new logger.transports.Console({ - level: logLevel || 'debug', - timestamp: false, - colorize: true, - prettyPrint: true, - handleExceptions: true, + new (logger.transports.Console)({ + level : logLevel || 'debug', + timestamp : false, + colorize : true, + prettyPrint : true, + handleExceptions : true, humanReadableUnhandledException: true, }), ], @@ -32,3 +32,5 @@ export default function configureLogging() { logger.debug('Testing: Log Level 4'); logger.silly('Testing: Log Level 5'); } + +module.exports = configureLogging; diff --git a/server/utils/configureSlack.js b/server/utils/configureSlack.js index 6e9d2644..feef1122 100644 --- a/server/utils/configureSlack.js +++ b/server/utils/configureSlack.js @@ -1,9 +1,10 @@ -import { SlackWebHook as winstonSlackWebHook } from 'winston-slack-webhook'; -import logger from 'winston'; -import config from '@config/slackConfig'; -const { slackWebHook, slackErrorChannel, slackInfoChannel } = config; +const winstonSlackWebHook = require('winston-slack-webhook').SlackWebHook; +const logger = require('winston'); -export default function configureSlack() { +const config = require('@config/slackConfig'); +const {slackWebHook, slackErrorChannel, slackInfoChannel} = config; + +function configureSlack () { logger.info('configuring slack logger...'); if (!config) { return logger.warn('No slack config found'); @@ -15,12 +16,12 @@ export default function configureSlack() { // add a transport for errors to slack if (slackErrorChannel) { logger.add(winstonSlackWebHook, { - name: 'slack-errors-transport', - level: 'warn', + name : 'slack-errors-transport', + level : 'warn', webhookUrl: slackWebHook, - channel: slackErrorChannel, - username: 'spee.ch', - iconEmoji: ':face_with_head_bandage:', + channel : slackErrorChannel, + username : 'spee.ch', + iconEmoji : ':face_with_head_bandage:', }); } else { logger.warn('No slack error channel logging set up'); @@ -28,12 +29,12 @@ export default function configureSlack() { // add a transport for info in slack if (slackInfoChannel) { logger.add(winstonSlackWebHook, { - name: 'slack-info-transport', - level: 'info', + name : 'slack-info-transport', + level : 'info', webhookUrl: slackWebHook, - channel: slackInfoChannel, - username: 'spee.ch', - iconEmoji: ':nerd_face:', + channel : slackInfoChannel, + username : 'spee.ch', + iconEmoji : ':nerd_face:', }); } else { logger.warn('No slack info channel logging set up'); @@ -41,3 +42,5 @@ export default function configureSlack() { // send test messages logger.info('Slack logging is online.'); } + +module.exports = configureSlack; diff --git a/server/utils/createModuleAliases.js b/server/utils/createModuleAliases.js index 89312986..4420a6a7 100644 --- a/server/utils/createModuleAliases.js +++ b/server/utils/createModuleAliases.js @@ -1,7 +1,7 @@ -import { resolve } from 'path'; +const { resolve } = require('path'); const WWW_SPEECH_ROOT = resolve(process.cwd()); -export default () => { +module.exports = () => { let moduleAliases = {}; // default aliases moduleAliases['@config'] = resolve(WWW_SPEECH_ROOT, 'config'); diff --git a/server/utils/fetchClaimData.js b/server/utils/fetchClaimData.js index 2e5dbafb..2f3e0014 100644 --- a/server/utils/fetchClaimData.js +++ b/server/utils/fetchClaimData.js @@ -1,9 +1,11 @@ -import chainquery from 'chainquery'; -import { getFileListFileByOutpoint } from 'server/lbrynet'; -import publishCache from 'server/utils/publishCache'; +const chainquery = require('chainquery').default; +const { getFileListFileByOutpoint } = require('server/lbrynet'); +const publishCache = require('server/utils/publishCache'); +const logger = require('winston'); const fetchClaimData = async params => { let { claimId } = params; + logger.debug('fetchClaimData params:', params); if (claimId === 'none') { claimId = null; @@ -19,4 +21,4 @@ const fetchClaimData = async params => { } }; -export default fetchClaimData; +module.exports = fetchClaimData; diff --git a/server/utils/getClaimData.js b/server/utils/getClaimData.js index caa70f21..bbea5aa5 100644 --- a/server/utils/getClaimData.js +++ b/server/utils/getClaimData.js @@ -1,14 +1,14 @@ -import chainquery from 'chainquery'; -import mime from 'mime-types'; -import { isBlocked } from './blockList'; -import publishCache from 'server/utils/publishCache'; -import logger from 'winston'; +const { + details: { host }, + assetDefaults: { thumbnail }, +} = require('@config/siteConfig'); +const chainquery = require('chainquery').default; +const mime = require('mime-types'); +const { isBlocked } = require('./blockList'); +const publishCache = require('server/utils/publishCache'); +const logger = require('winston'); -import { details, assetDefaults } from '@config/siteConfig'; -const { host } = details; -const { thumbnail } = assetDefaults; - -export default async (data, chName = null, chShortId = null) => { +module.exports = async (data, chName = null, chShortId = null) => { // TODO: Refactor getching the channel name out; requires invasive changes. let dataFromFileList, dataFromChainquery, outpoint, certificateId; @@ -32,9 +32,10 @@ export default async (data, chName = null, chShortId = null) => { let channelShortId = chShortId; let channelName = chName; // TODO: Factor blocked out - let blocked; + let blocked = false; if (isBlocked(outpoint)) { + logger.debug('blocking content'); blocked = true; } diff --git a/server/utils/getMediaDimensions.js b/server/utils/getMediaDimensions.js index b526f136..d130fd40 100644 --- a/server/utils/getMediaDimensions.js +++ b/server/utils/getMediaDimensions.js @@ -1,8 +1,8 @@ -import logger from 'winston'; -import { getImageHeightAndWidth } from './imageProcessing'; -import { getVideoHeightAndWidth } from './videoProcessing'; +const logger = require('winston'); +const { getImageHeightAndWidth } = require('./imageProcessing'); +const { getVideoHeightAndWidth } = require('./videoProcessing'); -export default async function getMediaDimensions(fileType, filePath) { +async function getMediaDimensions (fileType, filePath) { let height = 0; let width = 0; switch (fileType) { @@ -11,11 +11,11 @@ export default async function getMediaDimensions(fileType, filePath) { case 'image/png': case 'image/gif': logger.debug('creating File data for an image'); - [height, width] = await getImageHeightAndWidth(filePath); + [ height, width ] = await getImageHeightAndWidth(filePath); break; case 'video/mp4': logger.debug('creating File data for a video'); - [height, width] = await getVideoHeightAndWidth(filePath); + [ height, width ] = await getVideoHeightAndWidth(filePath); break; default: logger.error('unable to create File dimension data for unspported file type:', fileType); @@ -26,3 +26,5 @@ export default async function getMediaDimensions(fileType, filePath) { width, }; } + +module.exports = getMediaDimensions; diff --git a/server/utils/googleAnalytics.js b/server/utils/googleAnalytics.js index 90a9b595..a193155b 100644 --- a/server/utils/googleAnalytics.js +++ b/server/utils/googleAnalytics.js @@ -1,28 +1,25 @@ -import logger from 'winston'; -import ua from 'universal-analytics'; -import { analytics, details } from '@config/siteConfig'; - -const { googleId } = analytics; -const { title } = details; +const logger = require('winston'); +const ua = require('universal-analytics'); +const { analytics : { googleId }, details: { title } } = require('@config/siteConfig'); const createServeEventParams = (headers, ip, originalUrl) => { return { - eventCategory: 'client requests', - eventAction: 'serve request', - eventLabel: originalUrl, - ipOverride: ip, + eventCategory : 'client requests', + eventAction : 'serve request', + eventLabel : originalUrl, + ipOverride : ip, userAgentOverride: headers['user-agent'], - documentReferrer: headers['referer'], + documentReferrer : headers['referer'], }; }; const createTimingEventParams = (category, variable, label, startTime, endTime) => { const duration = endTime - startTime; return { - userTimingCategory: category, + userTimingCategory : category, userTimingVariableName: variable, - userTimingTime: duration, - userTimingLabel: label, + userTimingTime : duration, + userTimingLabel : label, }; }; @@ -32,7 +29,7 @@ const sendGoogleAnalyticsEvent = (ip, params) => { } const visitorId = ip.replace(/\./g, '-'); const visitor = ua(googleId, visitorId, { strictCidFormat: false, https: true }); - visitor.event(params, err => { + visitor.event(params, (err) => { if (err) { return logger.error('Google Analytics Event Error >>', err); } @@ -45,7 +42,7 @@ const sendGoogleAnalyticsTiming = (siteTitle, params) => { return logger.debug('Skipping analytics timing because no GoogleId present in configs'); } const visitor = ua(googleId, siteTitle, { strictCidFormat: false, https: true }); - visitor.timing(params, err => { + visitor.timing(params, (err) => { if (err) { return logger.error('Google Analytics Event Error >>', err); } @@ -53,19 +50,22 @@ const sendGoogleAnalyticsTiming = (siteTitle, params) => { }); }; -export const sendGAServeEvent = (headers, ip, originalUrl) => { +const sendGAServeEvent = (headers, ip, originalUrl) => { const params = createServeEventParams(headers, ip, originalUrl); sendGoogleAnalyticsEvent(ip, params); }; -export const sendGATimingEvent = (category, variable, label, startTime, endTime) => { +const sendGATimingEvent = (category, variable, label, startTime, endTime) => { const params = createTimingEventParams(category, variable, label, startTime, endTime); sendGoogleAnalyticsTiming(title, params); }; -export const chooseGaLbrynetPublishLabel = ({ - channel_name: channelName, - channel_id: channelId, -}) => { - return channelName || channelId ? 'PUBLISH_IN_CHANNEL_CLAIM' : 'PUBLISH_ANONYMOUS_CLAIM'; +const chooseGaLbrynetPublishLabel = ({ channel_name: channelName, channel_id: channelId }) => { + return (channelName || channelId ? 'PUBLISH_IN_CHANNEL_CLAIM' : 'PUBLISH_ANONYMOUS_CLAIM'); +}; + +module.exports = { + sendGAServeEvent, + sendGATimingEvent, + chooseGaLbrynetPublishLabel, }; diff --git a/server/utils/imageProcessing.js b/server/utils/imageProcessing.js index 4ac46403..45e21a76 100644 --- a/server/utils/imageProcessing.js +++ b/server/utils/imageProcessing.js @@ -1,6 +1,6 @@ -import sizeOf from 'image-size'; +const sizeOf = require('image-size'); -export const getImageHeightAndWidth = filePath => { +const getImageHeightAndWidth = (filePath) => { return new Promise((resolve, reject) => { try { const { height, width } = sizeOf(filePath); @@ -10,3 +10,7 @@ export const getImageHeightAndWidth = filePath => { } }); }; + +module.exports = { + getImageHeightAndWidth, +}; diff --git a/server/utils/isRequestLocal.js b/server/utils/isRequestLocal.js index 615a612a..aabc7d25 100644 --- a/server/utils/isRequestLocal.js +++ b/server/utils/isRequestLocal.js @@ -1,11 +1,6 @@ -export default function(req) { +module.exports = function (req) { let reqIp = req.connection.remoteAddress; let host = req.get('host'); - return ( - reqIp === '127.0.0.1' || - reqIp === '::ffff:127.0.0.1' || - reqIp === '::1' || - host.indexOf('localhost') !== -1 - ); -} + return reqIp === '127.0.0.1' || reqIp === '::ffff:127.0.0.1' || reqIp === '::1' || host.indexOf('localhost') !== -1; +}; diff --git a/server/utils/isValidQueryObj.js b/server/utils/isValidQueryObj.js index b0d1a2c3..cbebb337 100644 --- a/server/utils/isValidQueryObj.js +++ b/server/utils/isValidQueryObj.js @@ -20,4 +20,5 @@ const isValidQueryObj = queryObj => { ((yOrigin <= maxDimension && yOrigin >= 0) || yOrigin === null) ); }; -export default isValidQueryObj; + +module.exports = isValidQueryObj; diff --git a/server/utils/parseQuerystring.js b/server/utils/parseQuerystring.js index 1e413868..01e916c1 100644 --- a/server/utils/parseQuerystring.js +++ b/server/utils/parseQuerystring.js @@ -1,6 +1,6 @@ const queryObject = {}; // TODO: replace quick/dirty try catch with better practice -export default originalUrl => { +module.exports = originalUrl => { try { originalUrl .split('?')[1] diff --git a/server/utils/processTrending.js b/server/utils/processTrending.js index ccaffcf4..893e511f 100644 --- a/server/utils/processTrending.js +++ b/server/utils/processTrending.js @@ -1,14 +1,14 @@ -import db from 'server/models'; -import { +const db = require('server/models'); +const { getInformationFromValues, getZScore, getFastPValue, getWeight, -} from 'server/models/utils/trendingAnalysis'; +} = require('server/models/utils/trendingAnalysis'); -import logger from 'winston'; +const logger = require('winston'); -export default async () => { +module.exports = async () => { try { const claims = await db.Trending.getTrendingClaims(); const claimViews = await db.Views.getUniqueViews(); @@ -20,13 +20,20 @@ export default async () => { const time = Date.now(); // Must create statistical analytics before we can process zScores, etc - const viewsNumArray = claimViews.map(claimViewsEntry => claimViewsEntry.views); - const { mean, standardDeviation } = getInformationFromValues(viewsNumArray); + const viewsNumArray = claimViews.map((claimViewsEntry) => claimViewsEntry.views); + const { + mean, + standardDeviation, + } = getInformationFromValues(viewsNumArray); for (let i = 0; i < claimViews.length; i++) { let claimViewsEntry = claimViews[i]; - const { isChannel, claimId, publisherId } = claimViewsEntry; + const { + isChannel, + claimId, + publisherId, + } = claimViewsEntry; const zScore = getZScore(claimViewsEntry.views, mean, standardDeviation); const pValue = getFastPValue(zScore); @@ -34,9 +41,9 @@ export default async () => { const trendingData = { time, - isChannel: claimViewsEntry.isChannel, - claimId: claimViewsEntry.claimId, - publisherId: claimViewsEntry.publisherId, + isChannel : claimViewsEntry.isChannel, + claimId : claimViewsEntry.claimId, + publisherId : claimViewsEntry.publisherId, intervalViews: claimViewsEntry.views, weight, zScore, diff --git a/server/utils/publishCache.js b/server/utils/publishCache.js index d8abddb1..c770cb5b 100644 --- a/server/utils/publishCache.js +++ b/server/utils/publishCache.js @@ -1,4 +1,4 @@ -import NodeCache from 'node-cache'; +const NodeCache = require('node-cache'); const CACHE_TIMEOUT_IN_SECONDS = 10; const publishCache = new NodeCache({ stdTTL: CACHE_TIMEOUT_IN_SECONDS }); /* @@ -18,4 +18,4 @@ const publishCache = new NodeCache({ stdTTL: CACHE_TIMEOUT_IN_SECONDS }); */ -export default publishCache; +module.exports = publishCache; diff --git a/server/utils/videoProcessing.js b/server/utils/videoProcessing.js index 038a8dc6..508f6d10 100644 --- a/server/utils/videoProcessing.js +++ b/server/utils/videoProcessing.js @@ -1,7 +1,11 @@ -import getVideoDimensions from 'get-video-dimensions'; +const getVideoDimensions = require('get-video-dimensions'); -export async function getVideoHeightAndWidth(filePath) { +async function getVideoHeightAndWidth (filePath) { const videoDimensions = await getVideoDimensions(filePath); const { height, width } = videoDimensions; - return [height, width]; + return [ height, width ]; } + +module.exports = { + getVideoHeightAndWidth, +}; diff --git a/utils/createModuleAliases.js b/utils/createModuleAliases.js index cf8236a0..47560faa 100644 --- a/utils/createModuleAliases.js +++ b/utils/createModuleAliases.js @@ -37,7 +37,7 @@ module.exports = () => { // aliases for utils moduleAliases['@globalutils'] = resolve('utils'); moduleAliases['@clientutils'] = resolve(`${DEFAULT_ROOT}/utils`); - moduleAliases['@serverutils'] = resolve('server/utils'); + // moduleAliases['@serverutils'] = resolve('server/utils'); // aliases for constants moduleAliases['@clientConstants'] = resolve(`${DEFAULT_ROOT}/constants`); diff --git a/utils/isApprovedChannel.js b/utils/isApprovedChannel.js index 8aed520f..aaf8dcf8 100644 --- a/utils/isApprovedChannel.js +++ b/utils/isApprovedChannel.js @@ -1,9 +1,9 @@ -function isApprovedChannel(channel, channels) { +function isApprovedChannel (channel, channels) { const { name, shortId: short, longId: long } = channel; return Boolean( (long && channels.find(chan => chan.longId === long)) || - (name && short && channels.find(chan => chan.name === name && chan.shortId === short)) + (name && short && channels.find(chan => chan.name === name && chan.shortId === short)) ); } -export default isApprovedChannel; +module.exports = isApprovedChannel;