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 = '