diff --git a/services/gunDB/contact-api/actions.js b/services/gunDB/contact-api/actions.js index f8800962..5ac9f107 100644 --- a/services/gunDB/contact-api/actions.js +++ b/services/gunDB/contact-api/actions.js @@ -58,7 +58,11 @@ const authenticate = (user, pass, userNode) => } userNode.auth(user, pass, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else if (!userNode.is) { reject(new Error('authentication failed')) @@ -81,7 +85,11 @@ const blacklist = (publicKey, user) => } user.get(Key.BLACKLIST).set(publicKey, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -100,7 +108,11 @@ const generateHandshakeAddress = async () => { await /** @type {Promise} */ (new Promise((res, rej) => { user.get(Key.CURRENT_HANDSHAKE_ADDRESS).put(address, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -113,7 +125,11 @@ const generateHandshakeAddress = async () => { .get(Key.HANDSHAKE_NODES) .get(address) .put({ unused: 0 }, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -150,7 +166,11 @@ const setAvatar = (avatar, user) => .get(Key.PROFILE_BINARY) .get(Key.AVATAR) .put(avatar, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -183,7 +203,11 @@ const setDisplayName = (displayName, user) => .get(Key.PROFILE) .get(Key.DISPLAY_NAME) .put(displayName, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -210,7 +234,11 @@ const setDefaultSeedProvider = (encryptedSeedProvider, user) => user .get('preferencesSeedServiceProvider') .put(encryptedSeedProvider, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -235,7 +263,11 @@ const setSeedServiceData = (encryptedSeedServiceData, user) => user .get('preferencesSeedServiceData') .put(encryptedSeedServiceData, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -258,7 +290,11 @@ const setCurrentStreamInfo = (encryptedCurrentStreamInfo, user) => throw new TypeError() } user.get('currentStreamInfo').put(encryptedCurrentStreamInfo, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -368,7 +404,11 @@ const sendSpontaneousPayment = async ( .get(currOrderAddress) //@ts-ignore .set(order, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej( new Error( `Error writing order to order node: ${currOrderAddress} for pub: ${to}: ${ack.err}` @@ -589,7 +629,11 @@ const generateOrderAddress = user => const address = uuidv1() user.get(Key.CURRENT_ORDER_ADDRESS).put(address, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -622,7 +666,11 @@ const setBio = (bio, user) => } user.get(Key.BIO).put(bio, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -635,7 +683,11 @@ const setBio = (bio, user) => .get(Key.PROFILE) .get(Key.BIO) .put(bio, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { reject(new Error(ack.err)) } else { resolve() @@ -664,7 +716,11 @@ const saveSeedBackup = async (mnemonicPhrase, user, SEA) => { return new Promise((res, rej) => { user.get(Key.SEED_BACKUP).put(encryptedSeed, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -687,7 +743,11 @@ const saveChannelsBackup = async (backups, user, SEA) => { const encryptBackups = await SEA.encrypt(backups, mySecret) return new Promise((res, rej) => { user.get(Key.CHANNELS_BACKUP).put(encryptBackups, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -705,7 +765,11 @@ const setLastSeenApp = () => .getUser() .get(Key.LAST_SEEN_APP) .put(Date.now(), ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -719,7 +783,11 @@ const setLastSeenApp = () => .get(Key.PROFILE) .get(Key.LAST_SEEN_APP) .put(Date.now(), ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -771,7 +839,11 @@ const createPostNew = async (tags, title, content) => { // @ts-expect-error newPost, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res(_n._.get) @@ -798,7 +870,11 @@ const deletePost = async (postId, page) => { .get(Key.POSTS) .get(postId) .put(null, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -827,7 +903,11 @@ const follow = async (publicKey, isPrivate) => { .get(publicKey) // @ts-ignore .put(newFollow, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -847,7 +927,11 @@ const unfollow = publicKey => .get(Key.FOLLOWS) .get(publicKey) .put(null, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -870,7 +954,11 @@ const initWall = async () => { .get(Key.WALL) .get(Key.NUM_OF_PAGES) .put(0, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -891,7 +979,11 @@ const initWall = async () => { unused: null }, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -909,7 +1001,11 @@ const initWall = async () => { .get('0') .get(Key.COUNT) .put(0, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() diff --git a/services/gunDB/contact-api/jobs/lastSeenNode.js b/services/gunDB/contact-api/jobs/lastSeenNode.js index 3c38f4a4..63e13572 100644 --- a/services/gunDB/contact-api/jobs/lastSeenNode.js +++ b/services/gunDB/contact-api/jobs/lastSeenNode.js @@ -42,7 +42,11 @@ const lastSeenNode = user => { } gotLatestUserAck = false user.get(Key.LAST_SEEN_NODE).put(Date.now(), ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { logger.error(`Error inside lastSeenNode user job: ${ack.err}`) } gotLatestUserAck = true @@ -61,7 +65,11 @@ const lastSeenNode = user => { .get(Key.PROFILE) .get(Key.LAST_SEEN_NODE) .put(Date.now(), ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { logger.error(`Error inside lastSeenNode profile job: ${ack.err}`) } gotLatestProfileAck = true diff --git a/services/gunDB/contact-api/jobs/onOrders.js b/services/gunDB/contact-api/jobs/onOrders.js index fac74889..340b9c18 100644 --- a/services/gunDB/contact-api/jobs/onOrders.js +++ b/services/gunDB/contact-api/jobs/onOrders.js @@ -229,7 +229,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => { .get(orderID) // @ts-expect-error .put(orderResponse, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej( new Error( `Error saving encrypted invoice to order to response usergraph: ${ack}` @@ -290,7 +294,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => { .get(Key.ORDER_TO_RESPONSE) .get(ackNode) .put(ordResponse, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej( new Error( `Error saving encrypted orderAck to order to response usergraph: ${ack}` @@ -378,7 +386,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => { .get(Key.ORDER_TO_RESPONSE) .get(ackNode) .put(ordResponse, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej( new Error( `Error saving encrypted orderAck to order to response usergraph: ${ack}` @@ -425,7 +437,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => { .get(Key.ORDER_TO_RESPONSE) .get(ackNode) .put(serviceResponse, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej( new Error( `Error saving encrypted orderAck to order to response usergraph: ${ack}` @@ -489,7 +505,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => { .get(orderID) // @ts-expect-error .put(orderResponse, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { logger.error( `Error saving encrypted invoice to order to response usergraph: ${ack}` ) @@ -516,7 +536,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => { .get(orderID) // @ts-expect-error .put(orderResponse, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { logger.error( `Error saving encrypted invoice to order to response usergraph: ${ack}` ) diff --git a/services/gunDB/contact-api/utils/promisifygun.js b/services/gunDB/contact-api/utils/promisifygun.js index 633626e5..d5944dda 100644 --- a/services/gunDB/contact-api/utils/promisifygun.js +++ b/services/gunDB/contact-api/utils/promisifygun.js @@ -20,7 +20,11 @@ const promisify = node => { pnode.put = data => new Promise((res, rej) => { oldPut(data, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() @@ -31,7 +35,11 @@ const promisify = node => { pnode.set = data => new Promise((res, rej) => { oldSet(data, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res() diff --git a/services/gunDB/rpc/index.js b/services/gunDB/rpc/index.js index 76f58163..9ff9865b 100644 --- a/services/gunDB/rpc/index.js +++ b/services/gunDB/rpc/index.js @@ -205,7 +205,11 @@ const put = async (rawPath, value) => { } /* is primitive */ else { await makePromise((res, rej) => { node.put(/** @type {ValidDataValue} */ (theValue), ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { if (typeof ack.err === 'string') { rej(new Error(ack.err)) } else { @@ -290,7 +294,11 @@ async function set(rawPath, value) { const id = await makePromise((res, rej) => { const subNode = node.set(theValue, ack => { - if (ack.err && typeof ack.err !== 'number') { + if ( + ack.err && + typeof ack.err !== 'number' && + typeof ack.err !== 'object' + ) { rej(new Error(ack.err)) } else { res(subNode._.get) diff --git a/services/schema/index.js b/services/schema/index.js index 5cc57301..4fb0034c 100644 --- a/services/schema/index.js +++ b/services/schema/index.js @@ -201,7 +201,7 @@ const AddTmpChainOrder = async (address, orderInfo) => { .get(Key.TMP_CHAIN_COORDINATE) .get(addressSHA256) .put(encryptedOrderString, ack => { - if (ack.err && typeof ack.err !== 'number') { + if (ack.err && typeof ack.err !== 'number' && typeof ack.err !== 'object') { rej( new Error( `Error saving tmp chain coordinate order to user-graph: ${ack}` @@ -268,7 +268,7 @@ const clearTmpChainOrder = async (address) => { .get(Key.TMP_CHAIN_COORDINATE) .get(addressSHA256) .put(null, ack => { - if (ack.err && typeof ack.err !== 'number') { + if (ack.err && typeof ack.err !== 'number' && typeof ack.err !== 'object') { rej( new Error( `Error nulling tmp chain coordinate order to user-graph: ${ack}` @@ -370,7 +370,7 @@ class SchemaManager { .get(Key.COORDINATES) .get(coordinateSHA256) .put(encryptedOrderString, ack => { - if (ack.err && typeof ack.err !== 'number') { + if (ack.err && typeof ack.err !== 'number' && typeof ack.err !== 'object') { logger.info(ack) rej( new Error(