Merge remote-tracking branch 'upstream/v2.0.x-release' into issue-5256

This commit is contained in:
Tainan Felipe 2018-04-10 16:48:13 -03:00
commit 7121a4c897
16 changed files with 196 additions and 102 deletions

View File

@ -1,6 +1,6 @@
bbb.mainshell.locale.version =
bbb.mainshell.statusProgress.connecting =
bbb.mainshell.statusProgress.loading =
bbb.mainshell.statusProgress.connecting = ከአገልጋዩ ጋር በመገናኘት ላይ
bbb.mainshell.statusProgress.loading = በመጫን ላይ
bbb.mainshell.statusProgress.cannotConnectServer =
bbb.mainshell.copyrightLabel2 =
bbb.mainshell.logBtn.toolTip =
@ -50,7 +50,7 @@ bbb.micSettings.nextButton =
bbb.micSettings.nextButton.toolTip =
bbb.micSettings.join =
bbb.micSettings.join.toolTip =
bbb.micSettings.cancel =
bbb.micSettings.cancel = ሰርዝ
bbb.micSettings.connectingtoecho =
bbb.micSettings.connectingtoecho.error =
bbb.micSettings.cancel.toolTip =
@ -97,14 +97,14 @@ bbb.webrtcWarning.connection.reestablished =
bbb.inactivityWarning.title =
bbb.inactivityWarning.message =
bbb.shuttingDown.message =
bbb.inactivityWarning.cancel =
bbb.mainToolbar.helpBtn =
bbb.mainToolbar.logoutBtn =
bbb.mainToolbar.logoutBtn.toolTip =
bbb.inactivityWarning.cancel = ሰርዝ
bbb.mainToolbar.helpBtn = እገዛ
bbb.mainToolbar.logoutBtn = ውጣ
bbb.mainToolbar.logoutBtn.toolTip = ውጣ
bbb.mainToolbar.idleLogoutBtn =
bbb.mainToolbar.langSelector =
bbb.mainToolbar.settingsBtn =
bbb.mainToolbar.settingsBtn.toolTip =
bbb.mainToolbar.langSelector = ቋንቋ ይምረጡ
bbb.mainToolbar.settingsBtn = ቅንብሮች
bbb.mainToolbar.settingsBtn.toolTip = ቅንብሮችን ክፈት
bbb.mainToolbar.shortcutBtn =
bbb.mainToolbar.shortcutBtn.toolTip =
bbb.mainToolbar.recordBtn.toolTip.start =
@ -138,7 +138,7 @@ bbb.guests.askModerator =
bbb.guests.Management =
bbb.clientstatus.title =
bbb.clientstatus.notification =
bbb.clientstatus.close =
bbb.clientstatus.close = ይዝጉ
bbb.clientstatus.tunneling.title =
bbb.clientstatus.tunneling.message =
bbb.clientstatus.browser.title =
@ -155,9 +155,9 @@ bbb.clientstatus.java.title =
bbb.clientstatus.java.notdetected =
bbb.clientstatus.java.notinstalled =
bbb.clientstatus.java.oldversion =
bbb.window.minimizeBtn.toolTip =
bbb.window.minimizeBtn.toolTip = አሳንስ
bbb.window.maximizeRestoreBtn.toolTip =
bbb.window.closeBtn.toolTip =
bbb.window.closeBtn.toolTip = ይዝጉ
bbb.videoDock.titleBar =
bbb.presentation.titleBar =
bbb.chat.titleBar =
@ -166,7 +166,7 @@ bbb.users.titleBar =
bbb.users.quickLink.label =
bbb.users.minimizeBtn.accessibilityName =
bbb.users.maximizeRestoreBtn.accessibilityName =
bbb.users.settings.buttonTooltip =
bbb.users.settings.buttonTooltip = ቅንብሮች
bbb.users.settings.audioSettings =
bbb.users.settings.webcamSettings =
bbb.users.settings.muteAll =
@ -179,16 +179,16 @@ bbb.users.roomLocked.text =
bbb.users.pushToTalk.toolTip =
bbb.users.pushToMute.toolTip =
bbb.users.muteMeBtnTxt.talk =
bbb.users.muteMeBtnTxt.mute =
bbb.users.muteMeBtnTxt.muted =
bbb.users.muteMeBtnTxt.mute = ድምጸ-ከል ያድርጉ
bbb.users.muteMeBtnTxt.muted = ድምጸ-ከል ተደርጓል
bbb.users.usersGrid.contextmenu.exportusers =
bbb.users.usersGrid.accessibilityName =
bbb.users.usersGrid.nameItemRenderer =
bbb.users.usersGrid.nameItemRenderer.youIdentifier =
bbb.users.usersGrid.statusItemRenderer =
bbb.users.usersGrid.nameItemRenderer = ስም
bbb.users.usersGrid.nameItemRenderer.youIdentifier = አንተ
bbb.users.usersGrid.statusItemRenderer = ሁኔታ
bbb.users.usersGrid.statusItemRenderer.changePresenter =
bbb.users.usersGrid.statusItemRenderer.presenter =
bbb.users.usersGrid.statusItemRenderer.moderator =
bbb.users.usersGrid.statusItemRenderer.moderator = አወያይ
bbb.users.usersGrid.statusItemRenderer.voiceOnlyUser =
bbb.users.usersGrid.statusItemRenderer.raiseHand =
bbb.users.usersGrid.statusItemRenderer.applause =
@ -204,14 +204,14 @@ bbb.users.usersGrid.statusItemRenderer.neutral =
bbb.users.usersGrid.statusItemRenderer.happy =
bbb.users.usersGrid.statusItemRenderer.sad =
bbb.users.usersGrid.statusItemRenderer.clearStatus =
bbb.users.usersGrid.statusItemRenderer.viewer =
bbb.users.usersGrid.statusItemRenderer.viewer = ተመልካች
bbb.users.usersGrid.statusItemRenderer.streamIcon.toolTip =
bbb.users.usersGrid.statusItemRenderer.presIcon.toolTip =
bbb.users.usersGrid.mediaItemRenderer =
bbb.users.usersGrid.mediaItemRenderer.talking =
bbb.users.usersGrid.mediaItemRenderer.webcam =
bbb.users.usersGrid.mediaItemRenderer.webcamBtn =
bbb.users.usersGrid.mediaItemRenderer.pushToTalk =
bbb.users.usersGrid.mediaItemRenderer.pushToTalk = ድምጸ-ከል አንሳ {0}
bbb.users.usersGrid.mediaItemRenderer.pushToMute =
bbb.users.usersGrid.mediaItemRenderer.pushToLock =
bbb.users.usersGrid.mediaItemRenderer.pushToUnlock =
@ -284,10 +284,10 @@ bbb.fileupload.selectBtn.toolTip =
bbb.fileupload.uploadBtn =
bbb.fileupload.uploadBtn.toolTip =
bbb.fileupload.deleteBtn.toolTip =
bbb.fileupload.showBtn =
bbb.fileupload.showBtn = አሳይ
bbb.fileupload.retry =
bbb.fileupload.showBtn.toolTip =
bbb.fileupload.close.tooltip =
bbb.fileupload.close.tooltip = ይዝጉ
bbb.fileupload.close.accessibilityName =
bbb.fileupload.genThumbText =
bbb.fileupload.progBarLbl =
@ -295,7 +295,7 @@ bbb.fileupload.fileFormatHint =
bbb.fileupload.letUserDownload =
bbb.fileupload.letUserDownload.tooltip =
bbb.filedownload.title =
bbb.filedownload.close.tooltip =
bbb.filedownload.close.tooltip = ይዝጉ
bbb.filedownload.close.accessibilityName =
bbb.filedownload.fileLbl =
bbb.filedownload.downloadBtn =
@ -367,7 +367,7 @@ bbb.video.publish.hint.cameraDenied =
bbb.video.publish.hint.cameraIsBeingUsed =
bbb.video.publish.hint.publishing =
bbb.video.publish.closeBtn.accessName =
bbb.video.publish.closeBtn.label =
bbb.video.publish.closeBtn.label = ሰርዝ
bbb.video.publish.titleBar =
bbb.video.streamClose.toolTip =
bbb.video.message.browserhttp =
@ -379,11 +379,11 @@ bbb.screensharePublish.restart.label =
bbb.screensharePublish.maximizeRestoreBtn.toolTip =
bbb.screensharePublish.closeBtn.toolTip =
bbb.screensharePublish.closeBtn.accessibilityName =
bbb.screensharePublish.minimizeBtn.toolTip =
bbb.screensharePublish.minimizeBtn.toolTip = አሳንስ
bbb.screensharePublish.minimizeBtn.accessibilityName =
bbb.screensharePublish.maximizeRestoreBtn.accessibilityName =
bbb.screensharePublish.commonHelpText.text =
bbb.screensharePublish.helpButton.toolTip =
bbb.screensharePublish.helpButton.toolTip = እገዛ
bbb.screensharePublish.helpButton.accessibilityName =
bbb.screensharePublish.helpText.PCIE1 =
bbb.screensharePublish.helpText.PCIE2 =
@ -422,7 +422,7 @@ bbb.screensharePublish.jwsCrashed.label =
bbb.screensharePublish.commonErrorMessage.label =
bbb.screensharePublish.tunnelingErrorMessage.one =
bbb.screensharePublish.tunnelingErrorMessage.two =
bbb.screensharePublish.cancelButton.label =
bbb.screensharePublish.cancelButton.label = ሰርዝ
bbb.screensharePublish.startButton.label =
bbb.screensharePublish.stopButton.label =
bbb.screensharePublish.stopButton.toolTip =
@ -464,7 +464,7 @@ bbb.layout.combo.custom =
bbb.layout.combo.customName =
bbb.layout.combo.remote =
bbb.layout.window.name =
bbb.layout.window.close.tooltip =
bbb.layout.window.close.tooltip = ይዝጉ
bbb.layout.window.close.accessibilityName =
bbb.layout.save.complete =
bbb.layout.save.ioerror =
@ -517,9 +517,9 @@ bbb.logout.refresh.message =
bbb.logout.refresh.label =
bbb.logout.feedback.hint =
bbb.logout.feedback.label =
bbb.settings.title =
bbb.settings.title = ቅንብሮች
bbb.settings.ok =
bbb.settings.cancel =
bbb.settings.cancel = ሰርዝ
bbb.settings.btn.toolTip =
bbb.logout.confirm.title =
bbb.logout.confirm.message =
@ -542,7 +542,7 @@ bbb.notes.saveBtn.toolTip =
bbb.sharedNotes.title =
bbb.sharedNotes.quickLink.label =
bbb.sharedNotes.createNoteWindow.label =
bbb.sharedNotes.createNoteWindow.close.tooltip =
bbb.sharedNotes.createNoteWindow.close.tooltip = ይዝጉ
bbb.sharedNotes.createNoteWindow.close.accessibilityName =
bbb.sharedNotes.typing.single =
bbb.sharedNotes.typing.double =
@ -762,7 +762,7 @@ bbb.shortcutkey.caption.takeOwnership.function =
bbb.polling.startButton.tooltip =
bbb.polling.startButton.label =
bbb.polling.publishButton.label =
bbb.polling.closeButton.label =
bbb.polling.closeButton.label = ይዝጉ
bbb.polling.customPollOption.label =
bbb.polling.pollModal.title =
bbb.polling.pollModal.hint =
@ -810,7 +810,7 @@ bbb.users.settings.roomIsMuted =
bbb.lockSettings.save =
bbb.lockSettings.save.tooltip =
bbb.lockSettings.cancel =
bbb.lockSettings.cancel = ሰርዝ
bbb.lockSettings.cancel.toolTip =
bbb.lockSettings.hint =
@ -845,7 +845,7 @@ bbb.users.breakout.notAssigned =
bbb.users.breakout.dragAndDropToolTip =
bbb.users.breakout.start =
bbb.users.breakout.invite =
bbb.users.breakout.close =
bbb.users.breakout.close = ይዝጉ
bbb.users.breakout.closeAllRooms =
bbb.users.breakout.insufficientUsers =
bbb.users.breakout.confirm =
@ -853,7 +853,7 @@ bbb.users.breakout.invited =
bbb.users.breakout.accept =
bbb.users.breakout.joinSession =
bbb.users.breakout.joinSession.accessibilityName =
bbb.users.breakout.joinSession.close.tooltip =
bbb.users.breakout.joinSession.close.tooltip = ይዝጉ
bbb.users.breakout.joinSession.close.accessibilityName =
bbb.users.breakout.youareinroom =
bbb.users.roomsGrid.room =
@ -865,7 +865,7 @@ bbb.users.roomsGrid.noUsers =
bbb.langSelector.default=
bbb.alert.cancel =
bbb.alert.cancel = ሰርዝ
bbb.alert.ok =
bbb.alert.no =
bbb.alert.yes =

View File

@ -290,7 +290,7 @@ stop_bigbluebutton () {
echo "Stopping BigBlueButton"
if command -v systemctl >/dev/null; then
if [ -f /usr/lib/systemd/system/bbb-html5.service ]; then
HTML5="mongod bbb-html5 bbb-webrtc-sfu kurento-media-server-6.0"
HTML5="mongod bbb-html5 bbb-webrtc-sfu kurento-media-server"
fi
if [ -f /usr/lib/systemd/system/bbb-webhooks.service ]; then
WEBHOOKS=bbb-webhooks
@ -346,7 +346,7 @@ start_bigbluebutton () {
echo "Starting BigBlueButton"
if command -v systemctl >/dev/null; then
if [ -f /usr/lib/systemd/system/bbb-html5.service ]; then
HTML5="mongod bbb-html5 bbb-webrtc-sfu kurento-media-server-6.0"
HTML5="mongod bbb-html5 bbb-webrtc-sfu kurento-media-server"
fi
if [ -f /usr/lib/systemd/system/bbb-webhooks.service ]; then
WEBHOOKS=bbb-webhooks
@ -486,7 +486,7 @@ display_bigbluebutton_status () {
units="red5 $TOMCAT_SERVICE nginx freeswitch $REDIS_SERVICE bbb-apps-akka bbb-transcode-akka bbb-fsesl-akka"
if [ -f /usr/lib/systemd/system/bbb-html5.service ]; then
units="$units mongod bbb-html5 bbb-webrtc-sfu kurento-media-server-6.0"
units="$units mongod bbb-html5 bbb-webrtc-sfu kurento-media-server"
fi
for unit in $units; do
@ -1476,6 +1476,13 @@ check_state() {
echo "#"
fi
if bbb-conf --status | grep -q inactive; then
echo "# Error: Detected some processes have not started correctly"
echo "#"
echo "# $(bbb-conf --status | grep inactive)"
echo "#"
fi
exit 0
}

5
bigbluebutton-html5/imports/startup/client/auth.js Normal file → Executable file
View File

@ -1,4 +1,5 @@
import Auth from '/imports/ui/services/auth';
import { setCustomLogoUrl } from '/imports/ui/components/user-list/service';
import { log } from '/imports/ui/services/api';
// disconnected and trying to open a new connection
@ -19,9 +20,11 @@ export function joinRouteHandler(nextState, replace, callback) {
.then(response => response.json())
.then((data) => {
const {
meetingID, internalUserID, authToken, logoutUrl,
meetingID, internalUserID, authToken, logoutUrl, customLogoURL,
} = data.response;
setCustomLogoUrl(customLogoURL);
Auth.set(meetingID, internalUserID, authToken, logoutUrl, sessionToken);
replace({ pathname: '/' });
callback();

View File

@ -18,6 +18,14 @@ const defaultProps = {
};
class Tooltip extends Component {
static wait(show, event) {
const tooltipTarget = event.target;
const expandedEl = tooltipTarget.parentElement.querySelector('[aria-expanded="true"]');
const isTarget = expandedEl === tooltipTarget;
if (expandedEl && !isTarget) return;
show();
}
constructor(props) {
super(props);
@ -40,12 +48,11 @@ class Tooltip extends Component {
delay: this.delay,
onShow: this.onShow,
onHide: this.onHide,
wait: Tooltip.wait,
touchHold: true,
};
this.tooltip = Tippy(`#${this.tippySelectorId}`, options);
}
onShow() {
document.addEventListener('keyup', this.handleEscapeHide);
}
@ -56,7 +63,6 @@ class Tooltip extends Component {
handleEscapeHide(e) {
if (e.keyCode !== ESCAPE) return;
this.tooltip.tooltips[0].hide();
}

View File

@ -2,9 +2,9 @@ import React, { Component } from 'react';
import { injectIntl } from 'react-intl';
import PropTypes from 'prop-types';
import { withRouter } from 'react-router';
import injectWbResizeEvent from '/imports/ui/components/presentation/resize-wrapper/component';
import { styles } from './styles';
import CustomLogo from './custom-logo/component';
import UserContent from './user-list-content/component';
const propTypes = {
@ -28,7 +28,7 @@ const propTypes = {
changeRole: PropTypes.func.isRequired,
roving: PropTypes.func.isRequired,
};
const SHOW_BRANDING = Meteor.settings.public.app.branding.displayBrandingArea;
const defaultProps = {
compact: false,
isBreakoutRoom: false,
@ -52,26 +52,56 @@ class UserList extends Component {
}
render() {
const {
intl,
openChats,
users,
compact,
currentUser,
isBreakoutRoom,
setEmojiStatus,
assignPresenter,
removeUser,
toggleVoice,
changeRole,
meeting,
getAvailableActions,
normalizeEmojiName,
isMeetingLocked,
isPublicChat,
roving,
CustomLogoUrl,
} = this.props;
return (
<div className={styles.userList}>
{
SHOW_BRANDING
&& !this.props.compact
&& CustomLogoUrl
? <CustomLogo CustomLogoUrl={CustomLogoUrl} /> : null
}
{<UserContent
intl={this.props.intl}
openChats={this.props.openChats}
users={this.props.users}
compact={this.props.compact}
currentUser={this.props.currentUser}
isBreakoutRoom={this.props.isBreakoutRoom}
setEmojiStatus={this.props.setEmojiStatus}
assignPresenter={this.props.assignPresenter}
removeUser={this.props.removeUser}
toggleVoice={this.props.toggleVoice}
changeRole={this.props.changeRole}
meeting={this.props.meeting}
getAvailableActions={this.props.getAvailableActions}
normalizeEmojiName={this.props.normalizeEmojiName}
isMeetingLocked={this.props.isMeetingLocked}
isPublicChat={this.props.isPublicChat}
roving={this.props.roving}
{...{
intl,
openChats,
users,
compact,
currentUser,
isBreakoutRoom,
setEmojiStatus,
assignPresenter,
removeUser,
toggleVoice,
changeRole,
meeting,
getAvailableActions,
normalizeEmojiName,
isMeetingLocked,
isPublicChat,
roving,
}
}
/>}
</div>
);

View File

@ -41,25 +41,30 @@ const UserListContainer = (props) => {
toggleVoice,
changeRole,
roving,
CustomLogoUrl,
} = props;
return (
<UserList
users={users}
meeting={meeting}
currentUser={currentUser}
openChats={openChats}
isBreakoutRoom={isBreakoutRoom}
setEmojiStatus={setEmojiStatus}
assignPresenter={assignPresenter}
removeUser={removeUser}
toggleVoice={toggleVoice}
changeRole={changeRole}
getAvailableActions={getAvailableActions}
normalizeEmojiName={normalizeEmojiName}
isMeetingLocked={isMeetingLocked}
isPublicChat={isPublicChat}
roving={roving}
{...{
users,
currentUser,
openChats,
isBreakoutRoom,
meeting,
getAvailableActions,
normalizeEmojiName,
isMeetingLocked,
isPublicChat,
setEmojiStatus,
assignPresenter,
removeUser,
toggleVoice,
changeRole,
roving,
CustomLogoUrl,
}
}
/>
);
};
@ -82,4 +87,5 @@ export default withTracker(({ params }) => ({
toggleVoice: Service.toggleVoice,
changeRole: Service.changeRole,
roving: Service.roving,
CustomLogoUrl: Service.getCustomLogoUrl(),
}))(UserListContainer);

View File

@ -0,0 +1,14 @@
import React from 'react';
import { styles } from './styles';
const CustomLogo = props => (
<div>
<div className={styles.branding}>
<img src={props.CustomLogoUrl} alt="custom branding logo" />
</div>
<div className={styles.separator} />
</div>
);
export default CustomLogo;

View File

@ -0,0 +1,17 @@
@import "/imports/ui/stylesheets/variables/_all";
.separator {
height: 1px;
background-color: $color-gray-lighter;
margin-top: $line-height-computed * .5;
margin-bottom: $line-height-computed * .5;
}
.branding {
padding: 0 $sm-padding-x;
width: 100%;
& > img {
max-height: 2rem;
max-width: 100%;
}
}

View File

@ -27,6 +27,12 @@ const mapOpenChats = (chat) => {
: chat.toUserId;
};
const CUSTOM_LOGO_URL_KEY = 'CustomLogoUrl';
export const setCustomLogoUrl = path => Storage.setItem(CUSTOM_LOGO_URL_KEY, path);
const getCustomLogoUrl = () => Storage.getItem(CUSTOM_LOGO_URL_KEY);
const sortUsersByName = (a, b) => {
if (a.name.toLowerCase() < b.name.toLowerCase()) {
return -1;
@ -363,4 +369,6 @@ export default {
isMeetingLocked,
isPublicChat,
roving,
setCustomLogoUrl,
getCustomLogoUrl,
};

View File

@ -266,17 +266,6 @@ class VideoProvider extends Component {
options.remoteVideo = tag;
}
this.cameraTimeouts[id] = setTimeout(() => {
log('error', `Camera share has not suceeded in ${CAMERA_SHARE_FAILED_WAIT_TIME}`);
if (this.props.userId == id) {
this.notifyError(intl.formatMessage(intlMessages.sharingError));
this.unshareWebcam();
} else {
this.stop(id);
this.initWebRTC(id, shareWebcam, videoOptions, tag);
}
}, CAMERA_SHARE_FAILED_WAIT_TIME);
const webRtcPeer = new peerObj(options, function (error) {
if (error) {
log('error', ' WebRTC peerObj create error');
@ -290,9 +279,9 @@ class VideoProvider extends Component {
that.destroyWebRTCPeer(id);
if (shareWebcam) {
that.unshareWebcam();
VideoService.exitVideo();
VideoService.exitedVideo();
that.unshareWebcam();
}
return log('error', error);
}
@ -313,6 +302,18 @@ class VideoProvider extends Component {
return log('error', error);
}
that.cameraTimeouts[id] = setTimeout(() => {
log('error', `Camera share has not suceeded in ${CAMERA_SHARE_FAILED_WAIT_TIME}`);
if (that.props.userId == id) {
that.notifyError(intl.formatMessage(intlMessages.sharingError));
that.unshareWebcam();
VideoService.exitedVideo();
} else {
that.stop(id);
that.initWebRTC(id, shareWebcam, videoOptions, tag);
}
}, CAMERA_SHARE_FAILED_WAIT_TIME);
console.log(`Invoking SDP offer callback function ${location.host}`);
const message = {
type: 'video',
@ -396,6 +397,7 @@ class VideoProvider extends Component {
if (message.cameraId == userId) {
this.unshareWebcam();
VideoService.exitedVideo();
this.notifyError(intl.formatMessage(intlMessages.sharingError));
} else {
this.stop(message.cameraId);

View File

@ -63,6 +63,7 @@ const JoinVideoOptions = ({
intl.formatMessage(intlMessages.videoMenuDisabled)
: intl.formatMessage(intlMessages.videoMenu)
}
className={styles.button}
onClick={() => null}
hideLabel
aria-label={intl.formatMessage(intlMessages.videoMenuDesc)}

View File

@ -1,19 +1,13 @@
@import "/imports/ui/stylesheets/variables/_all";
.container {
span:first-child{
box-shadow: 0 2px 5px 0 rgb(0, 0, 0);
}
}
.button {
&:focus {
outline: none !important;
}
span:first-child {
box-shadow: 0 2px 5px 0 rgb(0, 0, 0);
}
}
.imageSize {

View File

@ -47,6 +47,9 @@
"layout": false
}
},
"branding": {
"displayBrandingArea": false
},
"allowHTML5Moderator": true,
"allowModeratorToUnmuteAudio": true,
"httpsConnection": false,

View File

@ -47,6 +47,9 @@
"layout": false
}
},
"branding": {
"displayBrandingArea": false
},
"allowHTML5Moderator": true,
"allowModeratorToUnmuteAudio": true,
"httpsConnection": true,

View File

@ -17,5 +17,5 @@ to-audio: "to-audio-sfu"
to-akka: "to-akka-apps-redis-channel"
log:
filename: '/var/log/bigbluebutton/bbb-webrtc-sfu/bbb-webrtc-sfu.log'
filename: '/var/log/bbb-webrtc-sfu/bbb-webrtc-sfu.log'
level: 'verbose'

View File

@ -327,7 +327,7 @@ module.exports = class MediaServer extends EventEmitter {
_handleError(error) {
// Checking if the error needs to be wrapped into a JS Error instance
if(!isError(error)) {
if(!this.isError(error)) {
error = new Error(error);
}